Warning, /frameworks/syntax-highlighting/autotests/input/test.odin is written in an unsupported language. File is not indexed.
0001 // This is from Odin examples: 0002 // https://github.com/odin-lang/examples/blob/master/by_example/dir_info/main.odin 0003 0004 package main 0005 0006 import "core:fmt" 0007 import "core:os" 0008 import "core:path/filepath" 0009 import "core:strings" 0010 0011 print_file_info :: proc(fi: os.File_Info) { 0012 // Split the path into directory and filename 0013 _, filename := filepath.split(fi.fullpath) 0014 0015 SIZE_WIDTH :: 12 0016 buf: [SIZE_WIDTH]u8 0017 0018 // Print size to string backed by buf on stack, no need to free 0019 _size := "-" if fi.is_dir else fmt.bprintf(buf[:], "%v", fi.size) 0020 0021 // Right-justify size for display, heap allocated 0022 size := strings.right_justify(_size, SIZE_WIDTH, " ") 0023 defer delete(size) 0024 0025 if fi.is_dir { 0026 fmt.printf("%v [%v]\n", size, filename) 0027 } else { 0028 fmt.printf("%v %v\n", size, filename) 0029 } 0030 } 0031 0032 main :: proc() { 0033 cwd := os.get_current_directory() 0034 fmt.println("Current working directory:", cwd) 0035 0036 f, err := os.open(cwd) 0037 defer os.close(f) 0038 0039 if err != os.ERROR_NONE { 0040 // Print error to stderr and exit with errorcode 0041 fmt.eprintln("Could not open directory for reading", err) 0042 os.exit(1) 0043 } 0044 0045 fis: []os.File_Info 0046 defer os.file_info_slice_delete(fis) // fis is a slice, we need to remember to free it 0047 0048 fis, err = os.read_dir(f, -1) // -1 reads all file infos 0049 if err != os.ERROR_NONE { 0050 fmt.eprintln("Could not read directory", err) 0051 os.exit(2) 0052 } 0053 0054 for fi in fis { 0055 print_file_info(fi) 0056 } 0057 }