Date: Thu, 22 Mar 2001 09:35:49 +1200 From: Jonathan Chen <jonathan.chen@itouch.co.nz> To: Alfred Perlstein <bright@wintelcom.net> Cc: questions@FreeBSD.ORG Subject: Re: rotating .signatures? Message-ID: <20010322093549.A94461@itouchnz.itouch> In-Reply-To: <20010321103918.P12319@fw.wintelcom.net>; from bright@wintelcom.net on Wed, Mar 21, 2001 at 10:39:18AM -0800 References: <20010321103918.P12319@fw.wintelcom.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--uAKRQypu60I7Lcqm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Wed, Mar 21, 2001 at 10:39:18AM -0800, Alfred Perlstein wrote:
> I've seen people that have rotating .signatures for email,
> anyone know how to do this with mutt?
I've got in my ~/.muttrc:
set signature="~/bin/pick-sig|"
which is a small C program which picks up a random signature from
~/.signatures.
--
Jonathan Chen <jonathan.chen@itouch.co.nz>
----------------------------------------------------------------------
Opportunities are seldom labeled
--uAKRQypu60I7Lcqm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="pick-sig.c"
/*
* Pick a signature from ~/.signatures directory
*
* jonathan.chen@itouch.co.nz
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#define SIGNATURE_DIR ".signatures"
main ()
{
int sigcount;
DIR * sigdir;
char path [1024];
int exit_val = EXIT_SUCCESS;
sprintf (path, "%s/%s", getenv ("HOME"), SIGNATURE_DIR);
/*
* Open the directory, count the number of entries
*
*/
if (!(sigdir = opendir (path)))
return EXIT_FAILURE;
for (sigcount = 0; readdir (sigdir); sigcount++);
sigcount -= 2; /* don't count . and .. */
if (sigcount < 0)
{
fprintf (stderr, "Internal error on counting files\n");
exit_val = EXIT_FAILURE;
goto end;
}
if (sigcount > 0)
{
int pick;
int i;
struct dirent * entry;
FILE * sigfile;
char line [1024];
srandomdev ();
pick = random () % sigcount;
rewinddir (sigdir);
for (i = -2; i <= pick; i++)
entry = readdir (sigdir);
sprintf (path, "%s/%s/%s",
getenv ("HOME"),
SIGNATURE_DIR,
entry -> d_name);
if (!(sigfile = fopen (path, "r")))
{
exit_val = EXIT_FAILURE;
goto end;
}
while (fgets (line, sizeof (line), sigfile))
fputs (line, stdout);
fclose (sigfile);
}
end:
closedir (sigdir);
return exit_val;
}
--uAKRQypu60I7Lcqm--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010322093549.A94461>
