Sync with sys/i386/isa/syscons.c revision 1.244.
This commit is contained in:
parent
a50ec50568
commit
aa9f1b9291
@ -25,7 +25,7 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: syscons.c,v 1.67 1998/01/04 09:59:23 kato Exp $
|
||||
* $Id: syscons.c,v 1.68 1998/01/08 10:50:46 kato Exp $
|
||||
*/
|
||||
|
||||
#include "sc.h"
|
||||
@ -4677,6 +4677,7 @@ next_code:
|
||||
case NEXT:
|
||||
{
|
||||
int next, this = get_scr_num();
|
||||
accents = 0;
|
||||
for (next = this+1; next != this; next = (next+1)%MAXCONS) {
|
||||
struct tty *tp = VIRTUAL_TTY(next);
|
||||
if (tp->t_state & TS_ISOPEN) {
|
||||
@ -4691,11 +4692,30 @@ next_code:
|
||||
return(BKEY);
|
||||
default:
|
||||
if (action >= F_ACC && action <= L_ACC) {
|
||||
accents = action - F_ACC + 1;
|
||||
if (accent_map.acc[accents - 1].accchar == 0) {
|
||||
/* turn it into an index */
|
||||
action -= F_ACC - 1;
|
||||
if ((action > accent_map.n_accs)
|
||||
|| (accent_map.acc[action - 1].accchar == 0)) {
|
||||
/*
|
||||
* The index is out of range or pointing to an
|
||||
* empty entry.
|
||||
*/
|
||||
accents = 0;
|
||||
do_bell(cur_console, BELL_PITCH, BELL_DURATION);
|
||||
}
|
||||
/*
|
||||
* If the same accent key has been hit twice,
|
||||
* produce the accent char itself.
|
||||
*/
|
||||
if (action == accents) {
|
||||
action = accent_map.acc[accents - 1].accchar;
|
||||
accents = 0;
|
||||
if (metas)
|
||||
action |= MKEY;
|
||||
return (action);
|
||||
}
|
||||
/* remember the index and wait for the next key stroke */
|
||||
accents = action;
|
||||
break;
|
||||
}
|
||||
if (accents > 0) {
|
||||
@ -4718,6 +4738,10 @@ next_code:
|
||||
|
||||
acc = &accent_map.acc[accents - 1];
|
||||
accents = 0;
|
||||
/*
|
||||
* If the accent key is followed by the space key,
|
||||
* produce the accent char itself.
|
||||
*/
|
||||
if (action == ' ') {
|
||||
action = acc->accchar;
|
||||
if (metas)
|
||||
@ -4725,7 +4749,7 @@ next_code:
|
||||
return (action);
|
||||
}
|
||||
for (i = 0; i < NUM_ACCENTCHARS; ++i) {
|
||||
if (acc->map[i][0] == 0)
|
||||
if (acc->map[i][0] == 0) /* end of the map entry */
|
||||
break;
|
||||
if (acc->map[i][0] == action) {
|
||||
action = acc->map[i][1];
|
||||
|
Loading…
x
Reference in New Issue
Block a user