The R Project SVN R

Rev

Rev 43800 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 43800 Rev 43882
Line 133... Line 133...
133
 
133
 
134
 
134
 
135
#define WIN32_LEAN_AND_MEAN 1
135
#define WIN32_LEAN_AND_MEAN 1
136
#include <windows.h> /* for Sleep */
136
#include <windows.h> /* for Sleep */
137
 
137
 
138
extern int mb_char_len(const char *, int, wchar_t *); /* from console.c */
138
int mb_char_len(const char *buf, int clength)
-
 
139
{
-
 
140
    int i, mb_len = 0;
-
 
141
 
-
 
142
    for(i = 0; i <= clength; i += mb_len)
-
 
143
	mb_len = mbrtowc(NULL, buf+i, MB_CUR_MAX, NULL);
-
 
144
    return mb_len;
-
 
145
}
139
 
146
 
140
static void moveback(DEstruct DE)
147
static void moveback(DEstruct DE)
141
{
148
{
142
    int mb_len;
149
    int mb_len;
143
    wchar_t wc;
-
 
144
 
150
 
145
    if (DE->clength > 0) {
151
    if (DE->clength > 0) {
146
	mb_len = mb_char_len(DE->buf, DE->clength-1, &wc);
152
	mb_len = mb_char_len(DE->buf, DE->clength-1);
147
	DE->clength -= mb_len;
153
	DE->clength -= mb_len;
148
	DE->bufp -= mb_len;
154
	DE->bufp -= mb_len;
149
	printstring(DE, DE->buf, DE->clength, DE->crow, DE->ccol, 1);
155
	printstring(DE, DE->buf, DE->clength, DE->crow, DE->ccol, 1);
150
    } else bell();
156
    } else bell();
151
}
157
}