コード例 #1
0
ファイル: mu-cmd-find.c プロジェクト: abelardojarab/emacsfull
static void
output_plain_fields (MuMsg *msg, const char *fields,
		     gboolean color, gboolean threads)
{
	const char*	myfields;
	int		nonempty;

	g_return_if_fail (fields);

	for (myfields = fields, nonempty = 0; *myfields; ++myfields) {

		MuMsgFieldId mfid;
		mfid =	mu_msg_field_id_from_shortcut (*myfields, FALSE);

		if (mfid == MU_MSG_FIELD_ID_NONE ||
		    (!mu_msg_field_xapian_value (mfid) &&
		     !mu_msg_field_xapian_contact (mfid)))
		  nonempty += printf ("%c", *myfields);

		else {
			ansi_color_maybe (mfid, color);
			nonempty += mu_util_fputs_encoded
			  (display_field (msg, mfid), stdout);
			ansi_reset_maybe (mfid, color);
		}
	}

	if (nonempty)
		fputs ("\n", stdout);
}
コード例 #2
0
ファイル: mu-cmd-find.c プロジェクト: vext01/mu
static void
output_plain_fields (MuMsg *msg, const char *fields,
		     gboolean color, gboolean threads)
{
	const char*	myfields;
	int		nonempty, backslash = 0;
	MuMsgFieldId	mfid;

	g_return_if_fail (fields);
	
	for (myfields = fields, nonempty = 0; *myfields; ++myfields) {

		if (backslash) {
			/* Just saw a backslash, interpret special char */
			switch (*myfields) {
			case 'n':
				printf("\n");
				break;
			case 't':
				printf("\t");
				break;
			default:
				printf("\\%c", *myfields);
				break;
			};
			backslash = 0;
		} else if (*myfields == '\\') {
			/* Looks like we are about to see a special char */
			backslash = 1;
			continue;
		} else {
			mfid = mu_msg_field_id_from_shortcut (*myfields, FALSE);

			if (mfid == MU_MSG_FIELD_ID_NONE ||
			    (!mu_msg_field_xapian_value (mfid) &&
			     !mu_msg_field_xapian_contact (mfid)))
			  nonempty += printf ("%c", *myfields);

			else {
				ansi_color_maybe (mfid, color);
				nonempty += mu_util_fputs_encoded
				  (display_field (msg, mfid), stdout);
				ansi_reset_maybe (mfid, color);
			}
		}
	}

	if (nonempty)
		fputs ("\n", stdout);
}
コード例 #3
0
ファイル: mu-cmd-find.c プロジェクト: abelardojarab/emacsfull
/* returns MU_MSG_FIELD_ID_NONE if there is an error */
static MuMsgFieldId
sort_field_from_string (const char* fieldstr, GError **err)
{
	MuMsgFieldId mfid;

	mfid = mu_msg_field_id_from_name (fieldstr, FALSE);

	/* not found? try a shortcut */
	if (mfid == MU_MSG_FIELD_ID_NONE &&
	    strlen(fieldstr) == 1)
		mfid = mu_msg_field_id_from_shortcut(fieldstr[0],
						     FALSE);
	if (mfid == MU_MSG_FIELD_ID_NONE)
		g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS,
			     "not a valid sort field: '%s'\n", fieldstr);
	return mfid;
}