1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
diff -ru bl-1.2.orig/bl.1 bl-1.2/bl.1
--- bl-1.2.orig/bl.1 Tue Dec 18 16:50:01 2001
+++ bl-1.2/bl.1 Tue Dec 18 16:53:36 2001
@@ -43,6 +43,8 @@
delay
between blinks. The delay must be given in microseconds. The default delay
is 125000 microseconds. Use this option to speed up, or slow down the blinking.
+.It Fl s
+only single blink for one of LEDs
.It Ar device
device without the "/dev/" that you are logged in on. These can only be
virtual console devices. If you are running X, use the virtual console
diff -ru bl-1.2.orig/bl.c bl-1.2/bl.c
--- bl-1.2.orig/bl.c Tue Dec 18 16:51:40 2001
+++ bl-1.2/bl.c Tue Dec 18 16:54:33 2001
@@ -110,6 +110,7 @@
int main(int argc, char *argv[])
{
int dir; /* direction we are going */
+ int single = -1; /* single or count repetions */
int delay; /* delay between blinks */
char c; /* char for getopt() */
char tty[10] = "/dev/"; /* device name */
@@ -142,11 +143,14 @@
ioctl(ttyfd,KDGETLED,&savedleds);
/* get options */
- while((c = getopt(argc,argv,"Brlbkcd:NCS")) != -1)
+ while((c = getopt(argc,argv,"Bsrlbkcd:NCS")) != -1)
switch(c) {
case 'B':
background = 0;
break;
+ case 's':
+ single = 1;
+ break;
case 'd':
/* set new delay */
if(optarg != NULL) delay = atoi(optarg);
@@ -203,6 +207,7 @@
case BL_CONVERGE:
while(1 > 0) converge(delay);
break;
+
case BL_BLINK:
/* get time and seed random number generator */
now = time(&now) / rand();
@@ -215,26 +220,51 @@
signal(SIGQUIT,reset_num);
signal(SIGTERM,reset_num);
signal(SIGHUP,reset_num);
- while(1 > 0) numblink(delay);
+ if(single > 0)
+ {
+ numblink(delay);
+ numblink(delay);
+ }
+ else
+ {
+ while(1 > 0)numblink(delay);
+ }
break;
case BL_CAPBLINK:
signal(SIGINT,reset_caps);
signal(SIGQUIT,reset_caps);
signal(SIGTERM,reset_caps);
signal(SIGHUP,reset_caps);
- while(1 > 0) capblink(delay);
+ if(single > 0)
+ {
+ capblink(delay);
+ capblink(delay);
+ }
+ else
+ {
+ while(1> 0)capblink(delay);
+ }
break;
case BL_SCRBLINK:
signal(SIGINT,reset_scrl);
signal(SIGQUIT,reset_scrl);
signal(SIGTERM,reset_scrl);
signal(SIGHUP,reset_scrl);
- while(1 > 0) scrblink(delay);
+ if(single > 0)
+ {
+ scrblink(delay);
+ scrblink(delay);
+ }
+ else
+ {
+ while(1> 0)scrblink(delay);
+ }
break;
default:
exit(-1);
}
+
exit(0);
}
@@ -334,6 +364,7 @@
printf("-d delay value in microseconds (default is 125000)\n");
printf("-h prints out this message\n");
printf("-w prints out warranty\n");
+ printf("-s only single blink for one of LEDs\n");
printf("<device> is the virtual console you are logged in on (without \"/dev/\")\n");
printf(" or the virtual console that your X server is running on\n");
exit(0);
|