int read_list(char *basepath, const char *filename) {
    size_t len = 0;
    FILE *f = NULL;
    char * line = NULL;

    int confLidas, revsLidas, confsRej, revsRej;
    confLidas = 0;
    revsLidas = 0;
    confsRej = 0;
    revsRej = 0;
    int naut = 0;

    char *absolute = NULL;
    absolute = (char *) malloc(sizeof (char) *(strlen(basepath) + strlen(filename)));
    strcat(absolute, basepath);
    strcat(absolute, filename);

    initTA();

    f = fopen(absolute, "r");

    if (f != NULL) {
        line = (char *) calloc(MAX_CHAR, sizeof (char));
        line = fgets(line, MAX_CHAR, f);

        min_pag = atoi(line);
        do {
            line = (char *) calloc(MAX_CHAR, sizeof (char));
            line = fgets(line, MAX_CHAR, f);

            if (line != NULL) {
                len = strlen(line);
                if (line[len - 1] == '\n')
                    line[len - 1] = '\0';
                absolute = (char *) malloc(sizeof (char) * (strlen(basepath) + len));
                clear_str(absolute, strlen(basepath) + len);
                strcat(absolute, basepath);
                strcat(absolute, line);

                if (line[0] == 'c')
                    confLidas += readC(absolute, &confsRej);
                if (line[0] == 'j')
                    revsLidas += readJ(absolute, &revsRej);
            }

        } while (line != NULL && line != "" && !feof(f));
        fclose(f);
    }

    if (absolute != NULL) {
        free(absolute);
        absolute = NULL;
    }
    free(line);

    logStats(confLidas, revsLidas, confsRej, revsRej);

    return 0;
}
Example #2
0
/* note, we will *own* the name, email we get, and we'll free them in
 * the end... */
static ContactInfo *
contact_info_new (char *email, char *name, time_t tstamp)
{
	ContactInfo *cinfo;

	/* email should not be NULL, name can */
	g_return_val_if_fail (email, NULL);

	cinfo = g_slice_new (ContactInfo);

	/* we need to clear the strings from control chars because
	 * they could screw up the keyfile */
	clear_str (email);
	clear_str (name);

	cinfo->_email  = email;
	cinfo->_name   = name;
	cinfo->_tstamp = tstamp;

	return cinfo;
}
int readIntervalos(char* fileName) {
    size_t len = 0;
    FILE *f = NULL;
    char * line = NULL, tmp[4];
    int i = 0, anoInicial = 0, anoFinal = 0, res = 0;
    int j;

    char *absolute = NULL;
    absolute = (char *) calloc((strlen(CAMINHO) + strlen(fileName)), sizeof (char));
    clear_str(absolute, strlen(CAMINHO) + strlen(fileName));

    strcat(absolute, CAMINHO);
    strcat(absolute, fileName);

    logIntervaloTIT();

    f = fopen(absolute, "r");

    if (f != NULL) {
        do {
            line = (char *) calloc(MAX_CHAR, sizeof (char));
            line = fgets(line, MAX_CHAR, f);

            if (line != NULL) {
                len = strlen(line);
                if (line[len - 1] == '\n')
                    line[len - 1] = '\0';

                for (i = 0; line[i] != '-'; i++)
                    tmp[i] = line[i];

                anoInicial = atoi(tmp);
                i++;
                for (; line[i] != '\0'; i++)
                    tmp[i - 5] = line[i];
                anoFinal = atoi(tmp);
            }

            res = intervalosAnos(anoInicial, anoFinal);

        } while (line != NULL && line != "" && !feof(f));
        fclose(f);
    }

    if (absolute != NULL) {
        free(absolute);
        absolute = NULL;
    }
    free(line);

    return res;
}
int readAno(char* fileName) {
    size_t len = 0;
    FILE *f = NULL;
    char * line = NULL, tmp[4];
    int i = 0, ano = 0, res = 0;

    char *absolute = NULL;
    absolute = (char *) calloc((strlen(CAMINHO) + strlen(fileName)), sizeof (char));
    clear_str(absolute, strlen(CAMINHO) + strlen(fileName));

    strcat(absolute, CAMINHO);
    strcat(absolute, fileName);

    logAnosAutoresPercentagemTIT();

    f = fopen(absolute, "r");

    if (f != NULL) {
        do {
            line = (char *) calloc(MAX_CHAR, sizeof (char));
            line = fgets(line, MAX_CHAR, f);

            if (line != NULL) {
                len = strlen(line);
                if (line[len - 1] == '\n')
                    line[len - 1] = '\0';

                for (i = 0; line[i] != '\0'; i++)
                    tmp[i] = line[i];

                ano = atoi(tmp);
                i++;
            }

            res = anosAutoresPercentagem(ano);

        } while (line != NULL && line != "" && !feof(f));
        fclose(f);
    }

    if (absolute != NULL) {
        free(absolute);
        absolute = NULL;
    }
    free(line);

    return res;
}
Example #5
0
int main(int argc,char** argv)
{
	int case_no=0;
	char data[MAXLEN];
	char* stop_tag="STOP";
	while(gets(data))
	{
		if(m_strcmp(data,stop_tag))
		{
			break;
		}
		printf("#%d: %s\n",++case_no,(is_palindrome(data)?"YES":"NO"));
		clear_str(data,MAXLEN);
	}
	return 0;
}
Example #6
0
int		read_buffer(t_shell *sh)
{
  int		ret;

  find_ps1(sh);
  my_putstr(sh->ps1);
  free(sh->ps1);
  free(sh->ps_1);
  clear_str(sh);
  while ((ret = read(0, sh->buffer, 512)) == 512);
  if (ret == 0)
    {
      putchar(10);
      return (0);
    }
  sh->buffer[ret - 1] = '\0';
  return (ret);
}
Example #7
0
int main(int argc,char**argv)
{
	int i,case_no=0,case_num,num,status;
	char s[MAXLEN];
	scanf("%d",&case_num);

	while(case_num--)
	{
		getchar();
		gets(s);
		num=0;
		for(i=0;s[i]!='[';i++)
		{
			num *=10;
			num +=(s[i]-'0');
		}
		status=find_status(s[i+1]);
		assert(status!=M_ERROR);
		/*输出%需要使用%%*/
		printf("Case #%d: %.2lf%%\n",++case_no,100*calc_percentage(num,status));
		clear_str(s,MAXLEN);
	}
	return 0;
}
Example #8
0
File: pinfo.c Project: bbs-io/mbse
/*
 * Product information screen
 */
void cr(void)
{
    char    *temp;

    temp       = calloc(81, sizeof(char));

    if (utf8)
	chartran_init((char *)"CP437", (char *)"UTF-8", 'B');

    strncpy(pstr, clear_str(), 255);
    strncat(pstr, colour_str(DARKGRAY, BLACK), 255);

    /* Print top row */
    strncat(pstr, (char *)"\xDA", 255);
    strncat(pstr, hLine_str(76), 255);
    strncat(pstr, (char *)"\xBF\r\n", 255);
    PUTSTR(chartran(pstr));

    wl();
    PUTSTR(chartran(pstr));

    ls();
    snprintf(temp, 80, "MBSE Bulletin Board System %s (%s-%s)", VERSION, OsName(), OsCPU());
    strncat(pstr, pout_str(YELLOW, BLACK, padleft(temp, 76, ' ')), 255);
    rs();
    PUTSTR(chartran(pstr));

    wl();
    PUTSTR(chartran(pstr));

    ls();
    snprintf(temp, 81, "%s", COPYRIGHT);
    strncat(pstr, pout_str(LIGHTCYAN, BLACK, padleft(temp, 76, ' ')), 255);
    rs();
    PUTSTR(chartran(pstr));

    wl();
    PUTSTR(chartran(pstr));

    ls();
    snprintf(temp, 81, "Compiled on %s at %s", __DATE__, __TIME__);
    strncat(pstr, pout_str(LIGHTRED, BLACK, padleft(temp, 76, ' ')), 255);
    rs();
    PUTSTR(chartran(pstr));

    wl();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"MBSE has been written and designed by Michiel Broek. Many others have given "), 255);
    rs();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"valuable time in the form of new ideas and suggestions on how to make MBSE  "), 255);
    rs();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"BBS a better BBS                                                            "), 255);
    rs();
    PUTSTR(chartran(pstr));
    
    wl();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(WHITE, BLACK, (char *)"Available from http://www.mbse.eu or 2:280/2802                             "), 255);
    rs();
    PUTSTR(chartran(pstr));

    wl();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)"JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,              "),
 255);
    rs();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)"                          Mats Birch, Mats Wallin.                          "), 255);
    rs();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)"                          ALL RIGHTS RESERVED.                              "), 255);
    rs();
    PUTSTR(chartran(pstr));

    wl();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(LIGHTBLUE, BLACK,  (char *)"This is free software; released under the terms of the GNU General Public   "), 255);
    rs();
    PUTSTR(chartran(pstr));

    ls();
    strncat(pstr, pout_str(LIGHTBLUE, BLACK,  (char *)"License as published by the Free Software Foundation.                       "), 255);
    rs();
    PUTSTR(chartran(pstr));

    wl();
    PUTSTR(chartran(pstr));

    strcpy(pstr, (char *)"\xC0");
    strncat(pstr, hLine_str(76), 255);
    strncat(pstr, (char *)"\xD9\r\n", 255);
    PUTSTR(chartran(pstr));

    free(temp);
    chartran_close();
    Enter(1);
    Pause();
}
Example #9
0
/*
 * Display last callers screen.
 */
void LastCallers(char *OpData)
{
    FILE		    *fp;
    int			    LineCount = 5, count = 0;
    char		    lstr[201], *sFileName, *Heading;
    struct lastcallers	    lcall;
    struct lastcallershdr   lcallhdr;

    sFileName = calloc(PATH_MAX, sizeof(char));
    Heading   = calloc(81, sizeof(char));

    if (utf8)
        chartran_init((char *)"CP437", (char *)"UTF-8", 'B');

    strcpy(lstr, clear_str());
    PUTSTR(chartran(lstr));

    snprintf(sFileName, PATH_MAX, "%s/etc/lastcall.data", getenv("FTND_ROOT"));
    if ((fp = fopen(sFileName,"r")) == NULL)
        WriteError("$LastCallers: Can't open %s", sFileName);
    else {
        fread(&lcallhdr, sizeof(lcallhdr), 1, fp);

        strcpy(lstr, colour_str(WHITE, BLACK));
        /* Todays callers to */
        snprintf(Heading, 81, "%s%s", (char *) Language(84), CFG.bbs_name);
        strncat(lstr, Center_str(Heading), 200);
        PUTSTR(chartran(lstr));

        strcpy(lstr, colour_str(LIGHTRED, BLACK));
        strncat(lstr, Center_str(hLine_str(strlen(Heading))), 200);
        PUTSTR(chartran(lstr));
        Enter(1);

        /* #  User Name               Device  timeOn  Calls Location */
        strcpy(lstr, poutCR_str(LIGHTGREEN, BLACK, (char *) Language(85)));
        PUTSTR(chartran(lstr));

        strcpy(lstr, colour_str(GREEN, BLACK));
        strncat(lstr, fLine_str(cols -1), 200);
        PUTSTR(chartran(lstr));

        while (fread(&lcall, lcallhdr.recsize, 1, fp) == 1) {
            if (!lcall.Hidden) {
                count++;

                strcpy(lstr, colour_str(WHITE, BLACK));
                snprintf(Heading, 80, "%-5d", count);
                strncat(lstr, Heading, 200);

                strncat(lstr, colour_str(LIGHTCYAN, BLACK), 200);
                if ((strcasecmp(OpData, "/H")) == 0) {
                    if ((strcmp(lcall.Handle, "") != 0 && *(lcall.Handle) != ' '))
                        snprintf(Heading, 80, "%-20s", lcall.Handle);
                    else
                        snprintf(Heading, 80, "%-20s", lcall.UserName);
                } else if (strcasecmp(OpData, "/U") == 0) {
                    snprintf(Heading, 80, "%-20s", lcall.Name);
                } else {
                    snprintf(Heading, 80, "%-20s", lcall.UserName);
                }
                strncat(lstr, Heading, 200);

                snprintf(Heading, 80, "%-8s", lcall.Device);
                strncat(lstr, pout_str(LIGHTBLUE, BLACK, Heading), 200);

                snprintf(Heading, 80, "%-8s", lcall.TimeOn);
                strncat(lstr, pout_str(LIGHTMAGENTA, BLACK, Heading), 200);

                snprintf(Heading, 80, "%-7d", lcall.Calls);
                strncat(lstr, pout_str(YELLOW, BLACK, Heading), 200);

                snprintf(Heading, 80, "%-32s", lcall.Location);
                strncat(lstr, pout_str(LIGHTRED, BLACK, Heading), 200);
                PUTSTR(chartran(lstr));
                Enter(1);

                LineCount++;
                if (LineCount == (rows -2)) {
                    Pause();
                    LineCount = 0;
                }

            } /* End of check if user is hidden */
        }

        strcpy(lstr, colour_str(GREEN, BLACK));
        strncat(lstr, fLine_str(cols -1), 200);
        PUTSTR(chartran(lstr));

        fclose(fp);
        Enter(1);
        Pause();
    }

    free(sFileName);
    free(Heading);
    chartran_close();
}