コード例 #1
0
ファイル: NiKFuncs3.c プロジェクト: dblarsson/NiKom
int personlig(void) {
	int nummer,editret;
	struct Mote *motpek;
	if(argument[0]) {
		if(mote2==-1) {
			puttekn("\r\n\nBrev kommenterar du som vanligt med 'kommentera'.\r\n\n",-1);
			return(0);
		}
		nummer=atoi(argument);
		motpek=getmotpek(mote2);
		if(motpek->type == MOTE_ORGINAL) {
			if(nummer<Servermem->info.lowtext || nummer>Servermem->info.hightext) {
				puttekn("\r\n\nTexten finns inte!\r\n\n",-1);
				return(0);
			}
			if(!MayBeMemberConf(Servermem->texts[nummer%MAXTEXTS], inloggad, &Servermem->inne[nodnr])) {
				puttekn("\r\n\nDu har inte rätt att kommentera den texten!\r\n\n",-1);
				return(0);
			}
			if(readtexthead(nummer,&readhead)) return(0);
			senast_text_mote = Servermem->texts[nummer%MAXTEXTS];
		} else if(motpek->type == MOTE_FIDO) {
			if(nummer<motpek->lowtext || nummer>motpek->texter) {
				puttekn("\r\n\nTexten finns inte!\r\n\n",-1);
				return(0);
			}
			senast_text_mote = motpek->nummer;
		}
		senast_text_typ=TEXT;
		senast_text_nr = nummer;
	} else {
		if(senast_text_typ==BREV) {
			puttekn("\r\n\nBrev kommenterar du som vanligt med 'kommentera'.\r\n\n",-1);
			return(0);
		}
		if(!(motpek=getmotpek(senast_text_mote))) {
			puttekn("\n\n\rHmm.. Mötet där texten finns existerar inte..\n\r",-1);
			return(0);
		}

	}
	if(motpek->type == MOTE_FIDO) {
		nu_skrivs = BREV_FIDO;
		return(fido_brev(NULL,NULL,motpek));
	}
	nu_skrivs=BREV;
	initpersheader();
	if((editret=edittext(NULL))==1) return(1);
	if(!editret) sparabrev();
	return(0);
}
コード例 #2
0
ファイル: NiKFuncs3.c プロジェクト: dblarsson/NiKom
void listaarende(void) {
	char *nextarg=argument,namn[50],kom[10];
	int x,dir=-1,from=-1,baratexter=FALSE;
	struct Mote *motpek;
	struct Header lahead;
	struct tm *ts;
	if(mote2==-1) {
		sprintf(outbuffer,"\n\n\rAnvänd 'Lista Brev' i %s\n\r",Servermem->cfg.brevnamn);
		puttekn(outbuffer,-1);
		return;
	}
	while(nextarg[0]) {
		if(nextarg[0]=='-') {
			if(nextarg[1]=='t' || nextarg[1]=='T') baratexter=TRUE;
			else if(nextarg[1]=='f' || nextarg[1]=='F') {
				dir=1;
				if(from<0) from=-2;
			}
		} else if(isdigit(nextarg[0])) from=atoi(nextarg);
		nextarg=hittaefter(nextarg);
	}
	motpek=getmotpek(mote2);
	if(motpek->type==MOTE_FIDO) {
		fidolistaarende(motpek,dir);
		return;
	}
	puttekn("\r\n\nNamn                              Text    Kom   Datum  Ärende",-1);
	puttekn("\r\n-------------------------------------------------------------------------\r\n",-1);
	if(from==-1) from=Servermem->info.hightext;
	else if(from==-2) from=Servermem->info.lowtext;
	for(x=from;x>=Servermem->info.lowtext && x<=Servermem->info.hightext;x+=dir) {
		if(Servermem->texts[x%MAXTEXTS]!=mote2) continue;
		if(readtexthead(x,&lahead)) return;
		if(lahead.kom_till_nr!=-1 && baratexter) continue;
		strcpy(namn,getusername(lahead.person));
		lahead.arende[22]=0;
		ts=localtime(&lahead.tid);
		if(lahead.kom_till_nr==-1) strcpy(kom,"   -");
		else sprintf(kom,"%d",lahead.kom_till_nr);
		sprintf(outbuffer,"%-34s%6d %6s %02d%02d%02d %s\r\n",namn,lahead.nummer,kom,ts->tm_year,ts->tm_mon+1,ts->tm_mday,lahead.arende);
		if(puttekn(outbuffer,-1)) return;
	}
}
コード例 #3
0
ファイル: NiKFuncs3.c プロジェクト: dblarsson/NiKom
void radtext(void) {
	int nummer;
	struct Header radhead;
	struct Mote *motpek;
	nummer = atoi(argument);
	motpek=getmotpek(Servermem->texts[nummer%MAXTEXTS]);
	if(motpek->type != MOTE_ORGINAL) {
		puttekn("\n\n\rDu kan bara radera texter i interna möten.\n\n\r",-1);
		return;
	}
	if(nummer < Servermem->info.lowtext || nummer > Servermem->info.hightext) {
		puttekn("\r\n\nTexten finns inte!\r\n\n",-1);
		return;
	}
	if(readtexthead(nummer,&radhead)) return;
	if(radhead.person!=inloggad && !MayAdminConf(motpek->nummer, inloggad, &Servermem->inne[nodnr])) {
		puttekn("\r\n\nDu kan bara radera texter av dig själv!\r\n\n",-1);
		return;
	}
	writetextmot(nummer,-1);
}
コード例 #4
0
ファイル: Cmd_Conf.c プロジェクト: punktniklas/NiKom
void Cmd_FootNote(void) {
  int textId, confId, editRet;
  struct Header textHeader;

  if(argument[0] == '\0') {
    SendString("\n\n\rSkriv: Fotnot <text nummer>\n\r");
    return;
  }
  textId = atoi(argument);
  confId = GetConferenceForText(textId);
  if(confId == -1) {
    SendString("\n\n\rFinns ingen sådan text.\n\r");
    return;
  }
  if(readtexthead(textId,&textHeader)) {
    return;
  }
  if(textHeader.person != inloggad
     && !MayAdminConf(confId, inloggad, &Servermem->inne[nodnr])) {
    SendString("\r\n\nDu kan bara lägga till fotnoter på dina egna texter.\r\n\n");
    return;
  }
  if(textHeader.footNote != 0) {
    SendString("\n\n\rTexten har redan en fotnot.\n\r");
    return;
  }

  SendString("\n\n\rFotnot till text %d av %s\n\r",
             textId, getusername(textHeader.person));
  if((editRet = edittext(NULL)) != 0) {
    return;
  }

  if(saveFootNoteLines(textId, &textHeader)) {
    writetexthead(textId, &textHeader);
  }
  freeeditlist();
}
コード例 #5
0
ファイル: NiKFuncs3.c プロジェクト: dblarsson/NiKom
int dumpatext(void) {
	int tnr,x;
	struct Header dumphead;
	FILE *fpr,*fpd;
	char *dumpfil,foostr[82],filnamn[40];
	if(!isdigit(argument[0])) {
		puttekn("\r\n\nSkriv: Dumpa Text <textnr> [filnamn]\r\n\n",-1);
		return(0);
	}
	tnr=atoi(argument);
	if(tnr<Servermem->info.lowtext || tnr>Servermem->info.hightext) {
		puttekn("\r\n\nTexten finns inte!\r\n",-1);
		return(0);
	}
	if(!MayReadConf(Servermem->texts[tnr%MAXTEXTS], inloggad, &Servermem->inne[nodnr])) {
		puttekn("\r\n\nDu har inte rätt att dumpa den texten!\r\n",-1);
		return(0);
	}
	dumpfil=hittaefter(argument);
	if(!dumpfil[0]) {
		puttekn("\r\n\nTill vilken fil? : ",-1);
		if(getstring(EKO,50,NULL)) return(1);
		if(!inmat[0]) return(0);
		dumpfil=inmat;
	}
	if(readtexthead(tnr,&dumphead)) return(0);
	sprintf(filnamn,"NiKom:Moten/Text%d.dat",dumphead.nummer/512);
	NiKForbid();
	if(!(fpr=fopen(filnamn,"r"))) {
		puttekn("\r\n\nKunde inte öppna Text.dat!\r\n\n",-1);
		NiKPermit();
		return(0);
	}
	if(fseek(fpr,dumphead.textoffset,0)) {
		puttekn("\r\n\nKunde inte söka i Text.dat!\r\n\n",-1);
		fclose(fpr);
		NiKPermit();
		return(0);
	}
	if(!(fpd=fopen(dumpfil,"w"))) {
		sprintf(outbuffer,"\r\n\nKunde inte öppna %s!\r\n",dumpfil);
		puttekn(outbuffer,-1);
		fclose(fpr);
		NiKPermit();
		return(0);
	}
	for(x=0;x<dumphead.rader;x++) {
		if(!(fgets(foostr,81,fpr))) {
			puttekn("\r\n\nFel vid läsandet av Text.dat!\r\n\n",-1);
			break;
		}
		if(fputs(foostr,fpd)) {
			sprintf(outbuffer,"\r\n\nFel vid skrivandet av %s!\r\n",dumpfil);
			puttekn(outbuffer,-1);
			break;
		}
	}
	fclose(fpr);
	fclose(fpd);
	NiKPermit();
	return(0);
}