Example #1
0
void imprimirMensagemOculpa(const char *linha) {
    int lendoPalavra = 0;

    while (*linha != '\n') {
        if (ESPACO(*linha)) {
            lendoPalavra = 0;
        }
        else if (!lendoPalavra) {
            putc(*linha, stdout);
            lendoPalavra = 1;
        }

        linha++;
    }

    putc('\n', stdout);
}
Example #2
0
/*
 ****************************************************************
 *	Trata o comando word (.wo).				*
 ****************************************************************
 */
void
trtwo (char *arg)
{
	char	*cp,
		*palvr;

	/*
	 *	Le a palavra.
	 */
	palvr = lepalvr (arg, &cp);

	/*
	 *	Coloca a palavra na linha.
	 */
	poepalvr (palvr, PALAVRA);

	while (ESPACO (*cp))
		cp++;

	if (*cp != NOCHAR)
		errcmd ();

}	/* end trtwo */
Example #3
0
/*
 ****************************************************************
 *	Le uma palavra.						*
 ****************************************************************
 */
char *
lepalvr (char *arg, char **cpp)
{
	register char	*cp;
	register char	c;
	static	 char	palvr[BLSZ];

	cp = palvr;
	if ((c = *arg) != '"'  &&  c != '\'')
	{
		while (!ESPACO (*arg)  &&  *arg != NOCHAR)
			*cp++ = *arg++;
	}
	else
	{
		/*
		 *	A palavra esta' entre aspas ou plics.
		 */
		while (*++arg != c  &&  *arg != NOCHAR)
		{
			if (*arg == '\\'  &&  *(arg + 1) == c)
				*cp++ = *++arg;
			else
				*cp++ = *arg;
		}
		if (*arg == c)
			arg++;
		else
			errcmd ();
	}

	*cp = NOCHAR;
	*cpp = arg;
	return (palvr);

}	/* end lepalvr */	
Example #4
0
/*
 ****************************************************************
 *	Prepara a linha para formatacao.			*
 ****************************************************************
 */
char *
poepalvr (char *palvr, int opt)
{
	char		*cp;
	register int	nc,
			cont;

	/*
	 *	O proximo ponteiro de buflin aponta para a palavra.
	 */
	buflin[contpalvr].p_palavra = cptrab;

	if (tpchar == NEGRITO)
	{
		buflin[contpalvr].p_negrito = TRUE;
		rpt2++;
	}
	else
		buflin[contpalvr].p_negrito = FALSE;

	if (tpchar == ITALICO)
		buflin[contpalvr].p_italico = TRUE;
	else
		buflin[contpalvr].p_italico = FALSE;
	
	if (ul > 0)
	{
		buflin[contpalvr].p_sublinhado = TRUE;
		rpt3++;
	}
	else
		buflin[contpalvr].p_sublinhado = FALSE;

	cp = palvr;
	nc = 0;

	/*
	 *	Coloca a palavra em buftrab.
	 */
	if (opt == CADEIA)
	{
		while (*cp != NOCHAR  &&  !ESPACO (*cp))
			nc += identcarac (&cp);
	}
	else	/* opt == PALAVRA */
	{
		while (*cp != NOCHAR)
			nc += identcarac (&cp);
	}
	*cptrab++ = NOCHAR;

	/*
	 *	Verifica fim de linha.
	 */
	cont = contcarac + nc;
	if (cont < tamlin)
	{
		/*
		 *	Meio da linha.
		 */
		contcarac += (nc + ((iptit  &&  contpalvr == 0) ? 0 : 1));
		contpalvr++;
	}
	else
	{
		if (cont == tamlin  ||  contpalvr == 0)
		{
			/*
			 *	Palavra maior que a linha, ou
			 *	nao precisa formatar.
			 */
			contpalvr++;
			trtlin (QUEBRA);
		}
		else
		{
			/*
			 *	Ultima palavra nao cabe na linha.
			 */
			if (tpchar == NEGRITO)
				rpt2--;

			if (ul > 0)
				rpt3--;

			trtlin (FORMATA);
			strcpy (buftrab, buflin[contpalvr].p_palavra);
			if (buflin[0].p_negrito = buflin[contpalvr].p_negrito)
				rpt2++;

			if (buflin[0].p_sublinhado =
					buflin[contpalvr].p_sublinhado)
				rpt3++;

			cptrab = strend (buftrab) + 1;
			contcarac = nc + 1;
			contpalvr = 1;
		}
	}
	return (cp);

}	/* end poepalvr */