> -- Info21 писал(а):
> Если он за 15 лет практически никому не помешал...Поглядите: эта процедура использует неправильную спецификацию (после loc.This результат провереяется не loc = NIL, а loc.res # 0).## Код:
```
PROCEDURE ObxLinks.PathToLoc (IN path: ARRAY OF CHAR; OUT loc: Files.Locator);
      VAR i, j: INTEGER; ch: CHAR; name: ARRAY 256 OF CHAR;
   BEGIN
      loc := Files.dir.This("");
      IF path # "" THEN
         i := 0; j := 0;
         REPEAT
            ch := path[i]; INC(i);
            IF (ch = "/") OR (ch = 0X) THEN name[j] := 0X; j := 0; loc := loc.This(name)
            ELSE name[j] := ch; INC(j)
            END
         UNTIL (ch = 0X) OR (loc.res # 0)
      END
   END PathToLoc;
```
И вылезают вопросы:
1) Где ещё эта неправильная спецификация используется, раз за 15 лет никто не заметил.
2) Как такая ситуация возникла. Это ошибка документации? Или может статься так, что в "предшественнике ББ" была как раз эта "неправильная" спецификация, которую Оминки на ходу решили поменять, а код переработать не успели.