micropython/extmod
Christian Walther 0c4fb16871 extmod/vfs_posix: Fix relative paths on non-root VFS.
The unwritten API contract expected of a VFS by mp_vfs_lookup_path() is
that paths passed in are relative to the root of the VFS if they start
with '/' and relative to the current directory of the VFS otherwise.
This was not correctly implemented in VfsPosix for instances with a
non-empty root - all paths were interpreted relative to the root. Fix
that. Since VfsPosix tracks its CWD using the "external" CWD of the Unix
process, the correct handling for relative paths is to pass them through
unmodified.

Also, when concatenating absolute paths, fix an off-by-one resulting in
a harmless double slash (the root path already has a trailing slash).

Signed-off-by: Christian Walther <cwalther@gmx.ch>
2023-10-19 16:21:09 +02:00
..
asyncio extmod/asyncio: Emit errors to stderr, not stdout. 2023-10-13 14:55:54 +11:00
axtls-include extmod/axtls-include: Add back needed header files for building axTLS. 2023-01-12 16:04:57 +11:00
btstack extmod/btstack/btstack_hci_uart: Trigger a poll after UART data is sent. 2023-09-29 18:01:42 +10:00
lwip-include all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
mbedtls extmod/mbedtls: Remove brainpool curves from config. 2022-10-22 19:12:46 +11:00
nimble all: Fix various spelling mistakes found by codespell 2.2.6. 2023-10-03 11:24:50 +11:00
extmod.cmake all: Remove query-variants make target. 2023-08-15 17:37:44 +10:00
extmod.mk extmod/network_esp_hosted: Add ESP-Hosted networking interface. 2023-09-14 23:51:30 +10:00
font_petme128_8x8.h extmod: Move font_petme128_8x8.h from ports/stm32 to extmod. 2022-05-05 13:30:40 +10:00
machine_bitstream.c extmod: Add machine.bitstream. 2021-08-19 22:50:11 +10:00
machine_bitstream.h extmod: Add machine.bitstream. 2021-08-19 22:50:11 +10:00
machine_i2c.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_i2c.h py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_mem.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_mem.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
machine_pinbase.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_pinbase.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
machine_pulse.c esp8266: Provide custom machine_time_pulse_us that feeds soft WDT. 2019-07-01 22:53:00 +10:00
machine_pulse.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
machine_pwm.c extmod/machine_pwm: Remove PWM_INIT and PWM_DUTY_U16_NS config options. 2023-05-04 13:19:19 +10:00
machine_pwm.h extmod/machine_pwm: Factor out machine.PWM bindings to common code. 2021-09-04 16:31:17 +10:00
machine_signal.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_signal.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
machine_spi.c extmod: Add and reorganise compilation guards and includes. 2022-11-11 16:24:32 +11:00
machine_spi.h py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_timer.c extmod: Add and reorganise compilation guards and includes. 2022-11-11 16:24:32 +11:00
misc.h all: Rename mp_umodule*, mp_module_umodule* to remove the "u" prefix. 2023-06-08 17:54:04 +10:00
modasyncio.c extmod/asyncio: Rename uasyncio to asyncio. 2023-06-19 17:33:03 +10:00
modbinascii.c extmod/moddeflate: Add deflate module providing the DeflateIO class. 2023-07-21 19:32:40 +10:00
modbluetooth.c all: Fix various spelling mistakes found by codespell 2.2.6. 2023-10-03 11:24:50 +11:00
modbluetooth.h extmod/btstack: Add support for CCCD to allow client subscriptions. 2023-04-26 11:37:20 +10:00
modbtree.c extmod/modbtree: Undefine queue macros before including berkeley-db. 2023-06-23 15:34:22 +10:00
modcryptolib.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
moddeflate.c extmod/moddeflate: Change default window size. 2023-09-01 12:23:37 +10:00
modframebuf.c extmod/modframebuf: Remove FrameBuffer1 from natmod build. 2023-10-16 12:18:43 +11:00
modhashlib.c extmod: Update to support mbedtls 3.x. 2023-06-23 15:22:27 +10:00
modheapq.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modjson.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modlwip.c extmod/modlwip: Fix setting of IP option SOF_BROADCAST. 2023-09-12 12:49:14 +10:00
modnetwork.c extmod/modnetwork: Forward if.config(hostname) to network.hostname. 2023-10-04 12:39:51 +11:00
modnetwork.h extmod/modnetwork: Forward if.config(hostname) to network.hostname. 2023-10-04 12:39:51 +11:00
modonewire.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
modos.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modplatform.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modplatform.h extmod/modplatform: Set MICROPY_PLATFORM_ARCH on riscv platforms. 2023-06-23 15:34:22 +10:00
modrandom.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modre.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modselect.c extmod/modselect: Properly track number of poll objects that are fd's. 2023-08-14 18:48:47 +10:00
modsocket.c extmod/{modlwip,modsocket}: Add support for SO_BROADCAST socket option. 2023-09-01 18:34:18 +10:00
modssl_axtls.c extmod/modssl_axtls: Only close underlying socket once if it was used. 2023-09-29 12:03:00 +10:00
modssl_mbedtls.c extmod/modssl_mbedtls: Ignore err ERR_SSL_RECEIVED_NEW_SESSION_TICKET. 2023-09-03 21:42:52 +10:00
modtime.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modtime.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
moductypes.c extmod/moductypes: Validate that uctypes.struct addr argument is an int. 2023-10-12 15:47:15 +11:00
modwebrepl.c all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
modwebsocket.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modwebsocket.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
mpbthci.c extmod/modbluetooth: Refactor stack/hci/driver/port bindings. 2020-09-08 11:41:31 +10:00
mpbthci.h extmod/nimble: Add support for reading whole HCI UART packets. 2022-06-03 11:53:28 +10:00
network_cyw43.c extmod/modnetwork: Forward if.config(hostname) to network.hostname. 2023-10-04 12:39:51 +11:00
network_cyw43.h extmod: Add network-level class binding to cyw43 driver. 2019-06-03 16:47:35 +10:00
network_esp_hosted.c extmod/network_esp_hosted: Add ESP-Hosted networking interface. 2023-09-14 23:51:30 +10:00
network_lwip.c extmod/modnetwork: Allow more extensive port-specific customisation. 2023-03-01 01:26:44 +11:00
network_ninaw10.c extmod/network_ninaw10: Add missing raw socket type to socket(). 2023-04-05 09:46:46 +10:00
network_wiznet5k.c extmod/modnetwork: Use a type protocol to implement NIC functions. 2022-12-15 17:40:06 +11:00
os_dupterm.c all: Rename *umodule*.c to remove the "u" prefix. 2023-06-08 17:54:17 +10:00
utime_mphal.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
vfs_blockdev.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
vfs_fat_diskio.c tools/uncrustify: Enable more opts to remove space between func and '('. 2020-06-19 22:07:32 +10:00
vfs_fat_file.c py/stream: Add mp_stream___exit___obj that calls mp_stream_close. 2023-07-21 18:49:03 +10:00
vfs_fat.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
vfs_fat.h extmod: Factor out block-device struct to make independent of fatfs. 2019-10-29 12:12:37 +11:00
vfs_lfs.c extmod: Add and reorganise compilation guards and includes. 2022-11-11 16:24:32 +11:00
vfs_lfs.h extmod: Add VFS littlefs bindings. 2019-10-29 14:17:29 +11:00
vfs_lfsx_file.c py/stream: Add mp_stream___exit___obj that calls mp_stream_close. 2023-07-21 18:49:03 +10:00
vfs_lfsx.c extmod/vfs_lfsx: Fix offset used before range check. 2023-05-19 22:01:10 +10:00
vfs_posix_file.c extmod/vfs_posix_file: Fix flush handling in msvc builds. 2023-10-05 10:18:24 +11:00
vfs_posix.c extmod/vfs_posix: Fix relative paths on non-root VFS. 2023-10-19 16:21:09 +02:00
vfs_posix.h extmod/vfs: Introduce a C-level VFS protocol, with fast import_stat. 2018-06-06 14:33:42 +10:00
vfs_reader.c py/builtinevex: Handle invalid filenames for execfile. 2023-10-12 15:17:59 +11:00
vfs.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
vfs.h py/builtin: Clean up and simplify import_stat and builtin_open config. 2022-05-25 13:04:45 +10:00
virtpin.c py/obj: Add accessors for type slots and use everywhere. 2022-09-19 19:06:07 +10:00
virtpin.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00