mailcap.inc 2.8 KB
@comment   GNU Mailutils -- a suite of utilities for electronic mail
@comment   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
@comment
@comment   GNU Mailutils is free software; you can redistribute it and/or modify
@comment   it under the terms of the GNU General Public License as published by
@comment   the Free Software Foundation; either version 2, or (at your option)
@comment   any later version.
@comment
@comment   GNU Mailutils is distributed in the hope that it will be useful,
@comment   but WITHOUT ANY WARRANTY; without even the implied warranty of
@comment   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@comment   GNU General Public License for more details.
@comment
@comment   You should have received a copy of the GNU General Public License
@comment   along with GNU Mailutils; if not, write to the Free Software
@comment   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA  

#include <stdio.h>
#include <mailutils/mailcap.h>

int main(int argc, char **argv)
@{
   stream_t stream = NULL;
   int status = 0;

   status = file_stream_create (&stream, "/etc/mailcap", MU_STREAM_READ);
   if (status == 0)
     @{
        status = stream_open (stream);
        if (status == 0)
          @{
             mu_mailcap_t mailcap = NULL;
             status = mu_mailcap_create (&mailcap, stream);
             if (status == 0)
               @{
                  int i;
                  size_t count = 0;
                  char buffer[256];

                  mu_mailcap_entries_count (mailcap, &count);
                  for (i = 1; i <= count; i++)
                    @{
                       int j;
                       mu_mailcap_entry_t entry = NULL;
                       int fields_count = 0;

                       printf ("entry[%d]\n", i);

                       mu_mailcap_get_entry (mailcap, i, &entry);

                       /* typefield.  */
                       mu_mailcap_entry_get_typefield (entry, buffer, sizeof (buffer), NULL);
                       printf ("\ttypefield: %s\n", buffer);

                       /* view-command.  */
                       mu_mailcap_entry_get_viewcommand (entry, buffer, sizeof (buffer), NULL);
                       printf ("\tview-command: %s\n", buffer);

                       /* fields.  */
                       mu_mailcap_entry_fields_count (entry, &fields_count);
                       for (j = 1; j <= fields_count; j++)
                         @{
                             mu_mailcap_entry_get_field (entry, j, buffer, sizeof (buffer), NULL);
                             printf ("\tfields[%d]: %s\n", j, buffer);
                         @}
                       printf ("\n");
                    @}
                    mu_mailcap_destroy (&mailcap);
               @}
           @}
       @}
  return 0;
@}