Subversion Repositories SvarDOS

Rev

Rev 1298 | Rev 1300 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1298 Rev 1299
Line 39... Line 39...
39
typedef unsigned short FHANDLE;
39
typedef unsigned short FHANDLE;
40
 
40
 
41
#endif
41
#endif
42
 
42
 
43
 
43
 
44
#include <string.h>  /* strcpy() */
-
 
45
 
-
 
46
#include "svarlang.h"
44
#include "svarlang.h"
47
 
45
 
48
 
46
 
49
/* supplied through DEFLANG.C */
47
/* supplied through DEFLANG.C */
50
extern char svarlang_mem[];
48
extern char svarlang_mem[];
Line 52... Line 50...
52
extern const unsigned short svarlang_memsz;
50
extern const unsigned short svarlang_memsz;
53
extern const unsigned short svarlang_string_count;
51
extern const unsigned short svarlang_string_count;
54
 
52
 
55
 
53
 
56
const char *svarlang_strid(unsigned short id) {
54
const char *svarlang_strid(unsigned short id) {
57
  size_t left = 0, right = svarlang_string_count - 1, x;
55
  unsigned short left = 0, right = svarlang_string_count - 1, x;
58
  unsigned short v;
56
  unsigned short v;
59
 
57
 
60
  if (svarlang_string_count == 0) return("");
58
  if (svarlang_string_count == 0) return("");
61
 
59
 
62
  while (left <= right) {
60
  while (left <= right) {
63
    x = left + ( (right - left ) >> 2 );
61
    x = left + ((right - left ) >> 2);
64
    v = svarlang_dict[x * 2];
62
    v = svarlang_dict[x * 2];
65
 
63
 
66
    if (id == v) return(svarlang_mem + svarlang_dict[x * 2 + 1]);
64
    if (id == v) return(svarlang_mem + svarlang_dict[x * 2 + 1]);
67
 
65
 
68
    if (id > v) {
66
    if (id > v) {