Fault-tolerant supervisory control of discrete-event systems