| 128 | } |
| 129 | |
| 130 | static long |
| 131 | SetHandleFilePos(int fd, short whence, long pos) |
| 132 | { |
| 133 | long curpos; |
| 134 | |
| 135 | if (!IsHandleFile(fd)) |
| 136 | return -1; |
| 137 | |
| 138 | fd -= FIRST_HF; |
| 139 | |
| 140 | curpos = theHandleFiles[fd].mark; |
| 141 | switch (whence) { |
| 142 | case SEEK_CUR: |
| 143 | curpos += pos; |
| 144 | break; |
| 145 | case SEEK_END: |
| 146 | curpos = theHandleFiles[fd].size - pos; |
| 147 | break; |
| 148 | default: /* set */ |
| 149 | curpos = pos; |
| 150 | break; |
| 151 | } |
| 152 | |
| 153 | if (curpos < 0) |
| 154 | curpos = 0; |
| 155 | else if (curpos > theHandleFiles[fd].size) |
| 156 | curpos = theHandleFiles[fd].size; |
| 157 | |
| 158 | theHandleFiles[fd].mark = curpos; |
| 159 | |
| 160 | return curpos; |
| 161 | } |
| 162 | |
| 163 | void |
| 164 | C2P(const char *c, unsigned char *p) |
no test coverage detected