Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2223363

Browse files
committed
Implement jerry_port_path_normalize in a more reliable way
Replace jerry_port_path_normalize,jerry_port_path_free,jerry_port_path_base with jerry_port_path_style,jerry_port_get_cwd Partially fixes #4979 Closes: #4983 JerryScript-DCO-1.0-Signed-off-by: Yonggang Luo luoyonggang@gmail.com
1 parent 8d44eed commit 2223363

File tree

10 files changed

+747
-215
lines changed

10 files changed

+747
-215
lines changed

‎docs/05.PORT-API.md

Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ void jerry_port_init (void);
2626
void jerry_port_fatal (jerry_fatal_code_t code);
2727
```
2828

29+
The path style of the OS
30+
31+
```c
32+
typedef enum
33+
{
34+
JERRY_PATH_STYLE_WINDOWS,
35+
JERRY_PATH_STYLE_POSIX,
36+
} jerry_path_style_t;
37+
```
38+
2939
Error codes
3040

3141
```c
@@ -170,52 +180,33 @@ void jerry_port_line_free (jerry_char_t *buffer_p);
170180

171181
## Filesystem
172182

173-
```
174-
/**
175-
* Canonicalize a file path.
176-
*
177-
* If possible, the implementation should resolve symbolic links and other directory references found in the input path,
178-
* and create a fully canonicalized file path as the result.
179-
*
180-
* The function may return with NULL in case an error is encountered, in which case the calling operation will not
181-
* proceed.
182-
*
183-
* The implementation should allocate storage for the result path as necessary. Non-NULL return values will be passed
184-
* to `jerry_port_path_free` when the result is no longer needed by the caller, which can be used to finalize
185-
* dynamically allocated buffers.
186-
*
187-
* NOTE: The implementation must not return directly with the input, as the input buffer is released after the call.
188-
*
189-
* @param path_p: zero-terminated string containing the input path
190-
* @param path_size: size of the input path string in bytes, excluding terminating zero
191-
*
192-
* @return buffer with the normalized path if the operation is successful,
193-
* NULL otherwise
194-
*/
195-
jerry_char_t *jerry_port_path_normalize (const jerry_char_t *path_p, jerry_size_t path_size);
196-
```
197-
198183
```c
199184
/**
200-
* Free a path buffer returned by jerry_port_path_normalize.
185+
* Get the path style of the current OS
201186
*
202-
* @param path_p: the path buffer to free
187+
* @return path style
203188
*/
204-
voidjerry_port_path_free (jerry_char_t *path_p);
189+
jerry_path_style_tjerry_port_path_style (void);
205190
```
206191
207192
```c
208193
/**
209-
* Get the offset of the basename component in the input path.
194+
* Get the cwd, the output string will be zero-terminated
210195
*
211-
* The implementation should return the offset of the first character after the last path separator found in the path.
212-
* This is used by the caller to split the path into a directory name and a file name.
196+
* @param buffer_p: the buffer to storage the cwd
197+
* @param buffer_size: the `buffer_p` buffer size, including '0円` terminator
213198
*
214-
* @param path_p: input zero-terminated path string
199+
* @note
200+
* - cwd: current working directory
215201
*
216-
* @return offset of the basename component in the input path
202+
* @return The length of cwd, excluding '0円' terminator
203+
* - When buffer_p is `NULL` and get cwd succeed return length of cwd
204+
* - When buffer_p is `NULL` and get cwd failed return 0
205+
* - When buffer_p is not `NULL` and the `buffer_size - 1` just equal to
206+
* length of cwd; and get cwd succeed return `buffer_size - 1`.
207+
* - Otherwise means get cwd failed and return 0
217208
*/
218-
jerry_size_t jerry_port_path_base (const jerry_char_t *path_p);
209+
jerry_size_t jerry_port_get_cwd (jerry_char_t *buffer_p, jerry_size_t buffer_size);
219210
```
220211

221212
```c

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /