Vladimir 'phcoder' Serbinenko
0b6225bd27
* util/grub-mkimage.c (generate_image): Explicitly init decompress_size.
...
* util/grub-mkimagexx.c (MASK3): New define.
(add_value_to_slot_20b): Use MASK3.
(add_value_to_slot_21): Likewise.
(relocate_addresses): Fix format specification.
(load_image): Explicitly init symtab_section.
2012-02-11 11:50:10 +01:00
Vladimir 'phcoder' Serbinenko
b055f8f676
* util/getroot.c (grub_find_root_devices_from_mountinfo): Fix types.
...
(grub_util_biosdisk_get_grub_dev): Fix format specification.
2012-02-11 11:41:22 +01:00
Grégoire Sutre
c8d9ead677
Source grub-mkconfig_lib from the build directory at build time.
2012-02-10 18:16:27 +01:00
Vladimir 'phcoder' Serbinenko
ebcecdf1c3
Increase warning level.
...
* conf/Makefile.common (CFLAGS_GNULIB): Add -Wno-redundant-decls
-Wno-unreachable-code -Wno-conversion -Wno-old-style-definition.
* configure.ac (HOST_CFLAGS): Add bunch of -W arguments.
(TARGET_CFLAGS): Likewise.
(HOST_CFLAGS): Add -Werror unless --disable-werror is activated.
* grub-core/Makefile.core.def (decompressor_xz): Add
-Wno-unreachable-code.
(normal): Add -Wno-redundant-decls.
(xzio): Add -Wno-unreachable-code.
(lzopio): Add -Wno-redundant-decls -Wno-error.
* grub-core/commands/acpi.c: Add exception to -Wcast-align.
* grub-core/commands/lsacpi.c: Add exception to -Wcast-align.
* grub-core/gensymlist.sh: Add exception to -Wmissing-format-attribute.
* grub-core/kern/dl.c: Add exception to -Wcast-align.
* grub-core/kern/efi/efi.c (grub_efi_modules_addr): Likewise.
* grub-core/kern/i386/coreboot/init.c: Add exception to
-Wsuggest-attribute=noreturn.
* grub-core/kern/ia64/dl.c: Add exception to -Wcast-align.
* grub-core/kern/ia64/dl_helper.c: Likewise.
* grub-core/kern/mips/dl.c: Likewise.
* grub-core/kern/sparc64/dl.c: Likewise.
* grub-core/lib/LzmaEnc.c: Add exception to -Wshadow.
* grub-core/lib/libgcrypt_wrap/cipher_wrap.h (memcpy): Likewise.
(memcmp): Likewise.
* grub-core/lib/pbkdf2.c: Add exception to -Wunreachable-code.
* grub-core/loader/ia64/efi/linux.c: Add exception to -Wcast-align.
* grub-core/loader/mips/linux.c: Likewise.
* grub-core/loader/multiboot_elfxx.c: Likewise.
* grub-core/script/parser.y: Add exception to -Wunreachable-code.
* grub-core/video/sm712.c: Add exception to -Wcast-align.
* util/import_gcry.py: Add -Wno-cast-align to modules checked by hand.
* grub-core/font/font.c (grub_font_loader_init): Add explicit cast and
fixme.
* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Likewise.
* grub-core/kern/i386/multiboot_mmap.c (grub_machine_mmap_init):
Fix prototype.
2012-02-10 16:48:48 +01:00
Vladimir 'phcoder' Serbinenko
102fae4a1c
* util/grub-mount.c (fuse_init): Avoid improper use of strings.
...
* util/grub-fstest.c (fstest): Likewise.
2012-02-10 14:12:43 +01:00
Vladimir 'phcoder' Serbinenko
5ebd976935
* util/import_gcry.py: Include grub/crypto.h in init.c.
2012-02-10 13:58:53 +01:00
Vladimir 'phcoder' Serbinenko
495fc8c181
* util/grub-mkimage.c (compress_kernel_lzma): Respect format security.
...
(generate_image): Make prefix a const char *.
Fix format specifications. Respect format security.
Avoid void * arithmetics.
Avoid shadowing.
(argp_parser): Remove unused variable. Respect format security.
* util/grub-mkimagexx.c (relocate_symbols): Avoid shadowing.
(count_funcs) [!MKIMAGE_ELF64]: #if-out.
(count_funcs): Remove unused variable.
(relocate_addresses): Fix format specification.
Disable x86-64 with elf32. Remove unused variables.
(add_fixup_entry): Avoid shadowing.
(make_reloc_section): Fix format specification.
Use assert.
(locate_sections): Fix format specifications.
(load_image): Avoid shadowing.
2012-02-10 13:56:18 +01:00
Vladimir 'phcoder' Serbinenko
043c2ea33b
* util/grub-setup.c (setup): Remove unused variable. Avoid shadowing.
...
Fix format specifications. Respect format security.
Don't translate already translated grub_errmsg.
(argp_parser): Remove unused variable
2012-02-10 13:49:24 +01:00
Vladimir 'phcoder' Serbinenko
3ec65a8187
* util/grub-mkrelpath.c (argp_parser): Remove unused variable.
2012-02-10 13:47:04 +01:00
Vladimir 'phcoder' Serbinenko
a4d9fe4a95
* util/grub-mkpasswd-pbkdf2.c (argp_parser): Remove unused variable.
...
(main): Likewise. Use xmalloc. Respect format security.
2012-02-10 13:44:57 +01:00
Vladimir 'phcoder' Serbinenko
15b81d49bc
* util/grub-mklayout.c (console_grub_equivalence): Make "layout"
...
a const char *.
(argp_parser): Remove unused variable.
2012-02-10 13:42:00 +01:00
Vladimir 'phcoder' Serbinenko
31731fc04f
* util/grub-mkfont.c (grub_font_info): Make name a const char *.
...
(add_pixel): Make static.
(add_font): Likewise.
(write_string_section): Make name and str a const char *.
(write_be16_section): Make name a const char *.
(print_glyphs): Make static.
(write_font_ascii_bitmap): Likewise.
(write_font_width_spec): Likewise.
(write_font_pf2): Likewise.
(argp_parser): Remove unused variable.
Respect format security.
(main): Avoid shadowing. Respect format security.
2012-02-10 13:31:43 +01:00
Vladimir 'phcoder' Serbinenko
0809527b9d
* util/grub-editenv.c (argp_parser): Make static.
...
(create_envblk_file): Use xmalloc.
(open_envblk_file): Likewise.
Resepect format security.
(set_variables): Respect format security.
2012-02-10 13:26:19 +01:00
Vladimir 'phcoder' Serbinenko
45b0c8b797
* util/getroot.c (grub_find_device): Respect format security.
...
(get_mdadm_uuid): Remove unused variable.
(grub_util_pull_device): Dont call gettext on already translated
grub_errmsg.
(find_system_device): Remove unused variable.
(grub_util_get_grub_dev): Likewise.
(grub_make_system_path_relative_to_its_root): Respect format security.
2012-02-10 13:17:12 +01:00
Vladimir 'phcoder' Serbinenko
1b024b4ea0
* util/grub-fstest.c (execute_command): Make first argument
...
a const char *.
(read_file): Avoid shadowing.
Reuse underlying error message if device open fails.
(cmd_cmp): Respect format security.
(root): Make const char *.
(fstest): Remove args argument and use global copy.
Respect format security.
(argp_parser): Make static.
(main): Make default_root const char *.
2012-02-10 13:08:59 +01:00
Vladimir 'phcoder' Serbinenko
5d1d4e288f
* util/grub-mount.c (root): Make const char *.
...
(execute_command): Make first argument a const char *.
(fuse_init): Respect format security.
(argp_parser): Make static. Remove unused variable.
(main): Make default_root a const char *.
Respect format security.
2012-02-10 13:03:21 +01:00
Vladimir 'phcoder' Serbinenko
36eb7379b3
* util/grub-probe.c (probe): Don't call gettext on already translated
...
grub_errmsg.
Remove unused variables.
(argp_parser): Remove unused variable.
2012-02-10 12:57:00 +01:00
Vladimir 'phcoder' Serbinenko
76fb2ea93b
* util/grub-script-check.c (argp_parser): Remove unused variable.
...
(main): Rename read to curread to avoid shadowing.
2012-02-10 12:54:40 +01:00
Vladimir 'phcoder' Serbinenko
56c98584c7
* util/misc.c (grub_util_write_image_at): Fix format specification.
...
(grub_util_write_image): Likewise.
(grub_script_execute_argument_to_string): Removed (unused).
(grub_script_execute_menuentry): Likewise.
(grub_putchar): Likewise.
2012-02-10 12:52:46 +01:00
Vladimir 'phcoder' Serbinenko
9a7428e638
* util/grub-editenv.c (print_var): Rename name to varname to
...
avoid shadowing.
(main): Rename index to curindex to avoid shadowing.
MAke filename a const char *.
2012-02-10 12:28:34 +01:00
Vladimir 'phcoder' Serbinenko
571e140e26
* util/grub-mkstandalone.in: Fix modules directory.
2012-02-09 14:45:56 +01:00
Vladimir 'phcoder' Serbinenko
a9d96eeb21
* util/grub-mkimage.c (image_targets): Set default_compression to lzma
...
on i386-pc target.
(argp_parser): Accept "auto" as compression specification.
2012-02-09 14:43:21 +01:00
Vladimir 'phcoder' Serbinenko
d65f6b36de
* util/grub-mknetdir.in: Use . rather than source for POSIX
...
compatibility.
2012-02-08 20:27:46 +01:00
Vladimir 'phcoder' Serbinenko
0a1e473c9b
* util/grub-probe.c (main): Fix trailing space in compatibility hint.
2012-02-08 20:23:53 +01:00
Vladimir 'phcoder' Serbinenko
9c4b5c13e6
Improve gettext support. Stylistic fixes and error handling fixes while
...
on it.
2012-02-08 19:26:01 +01:00
Vladimir 'phcoder' Serbinenko
b5c1f9bf41
* grub-core/commands/minicmd.c (GRUB_MOD_INIT): Add missing SIZE
...
argument.
* util/grub-fstest.c (options): Add missing DEVICE part.
2012-02-05 11:32:11 +01:00
Vladimir 'phcoder' Serbinenko
b525fd834d
Clarify and unify messages.
...
* grub-core/commands/hashsum.c (options): Unify messages.
* grub-core/commands/keystatus.c (GRUB_MOD_INIT): Don't mark a
literal-only message as translatable.
* grub-core/commands/lsacpi.c (GRUB_MOD_INIT): Likewise.
* grub-core/loader/ia64/efi/linux.c (GRUB_MOD_INIT): Likewise.
* grub-core/commands/legacycfg.c (GRUB_MOD_INIT): Add quoting around
commands.
* grub-core/commands/menuentry.c (options): Clarify that it's a keyboard
key, not the key used to unlock. Clarify what it's used for.
* grub-core/kern/emu/hostdisk.c (read_device_map): Unify error message.
* grub-core/loader/xnu.c (grub_xnu_load_driver): Remove erroneous colon.
* grub-core/script/main.c (GRUB_MOD_INIT): Clarify [n] to be [NUM].
* util/grub-editenv.c (options): Unify "verbose" message.
* util/grub-fstest.c (read_file): Unify error message.
(fstest): Add quotes around commands.
(options): Unify "verbose" message.
* util/grub-install.in: Add quotes around variable name.
* util/grub-kbdcomp.in: Unify error message.
* util/grub-mkfont.c (main): Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mklayout.c (options): Unify "verbose" message.
* util/grub-mkstandalone.in: Unify help and verbose messages.
* util/grub-mount.c (options): Unify "verbose" message.
* util/grub-probe.c (options): Likewise.
* util/grub-script-check.c (options): Likewise.
* util/grub-setup.c (setup): Unify no-terminator message.
(options): Use DEVICE and not DEV.
Unify "verbose" message.
* util/ieee1275/ofpath.c (xrealpath): Unify error message.
2012-02-05 11:23:47 +01:00
Vladimir 'phcoder' Serbinenko
0ae70393ba
Improve and unify messages.
...
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors): Add argument
name. All users updated.
Print filename in error.
(read_device_map): Print filename in error.
* util/getroot.c (grub_guess_root_devices): Print filename in error.
(grub_util_get_os_disk): Likewise.
(grub_util_biosdisk_get_grub_dev): Likewise.
(grub_util_check_block_device): Likewise.
(grub_util_check_char_device): Likewise.
(grub_make_system_path_relative_to_its_root): Likewise.
* util/grub-editenv.c (create_envblk_file): Likewise.
(open_envblk_file): Likewise.
(write_envblk): Likewise.
* util/grub-fstest.c (cmd_cp): Likewise.
(cmd_cat): Likewise.
(cmd_cmp): Likewise.
* util/grub-menulst2cfg.c (main): Likewise.
* util/grub-mkfont.c (write_font_ascii_bitmap): Likewise.
(write_font_width_spec): Likewise.
(write_font_pf2): Likewise.
* util/grub-mkimage.c (generate_image): New argument outname.
All users updated.
Remove unreacheable message.
(options): Unify messages.
(help_filter): Likewise.
* util/grub-mklayout.c (usage): Removed (unused).
(main): Print filename in error.
* util/grub-mkrescue.in: Fix wrong quoting.
* util/grub-setup.c (setup): Print filename in error.
* util/ieee1275/ofpath.c (vendor_is_ATA): Likewise.
(check_sas): Likewise.
* util/misc.c (grub_util_get_fp_size): Removed.
(grub_util_get_image_size): Print filename in error.
(grub_util_read_at): Removed.
(grub_util_read_image): Print filename in error.
(grub_util_load_image): Likewise.
(grub_util_write_image_at): New argument filename. All users updated.
Print filename in error.
(grub_util_write_image): New argument filename. All users updated.
Print filename in error.
* util/raid.c (grub_util_raid_getmembers): Print filename in error.
* util/resolve.c (grub_util_resolve_dependencies): Likewise.
2012-02-05 11:07:33 +01:00
Vladimir 'phcoder' Serbinenko
92cd0f6e45
Move platform-dependent files from $prefix to $prefix/$platform.
...
* config.h.in (GRUB_TARGET_CPU): New definition.
(GRUB_PLATFORM): Likewise.
* configure.ac: Define GRUB_TARGET_CPU and GRUB_PLATFORM.
* grub-core/commands/parttool.c (grub_cmd_parttool): Update dir.
* grub-core/efiemu/main.c (grub_efiemu_autocore): Likewise.
* grub-core/kern/dl.c (grub_dl_load): Likewise.
* grub-core/normal/autofs.c (read_fs_list): Likewise.
* grub-core/normal/crypto.c (read_crypto_list): Likewise.
* grub-core/normal/dyncmd.c (read_command_list): Likewise.
* grub-core/normal/term.c (read_terminal_list): Likewise.
* grub-core/gettext/gettext.c (grub_mofile_open_lang): Use
$prefix/locale.
(grub_gettext_init_ext): Likewise.
* grub-core/normal/main.c (GRUB_MOD_INIT): Define grub_cpu and
grub_platform.
* util/grub-install.in: Update directories.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
2012-02-04 21:47:29 +01:00
Vladimir 'phcoder' Serbinenko
498453f661
* po/POTFILES.in: Regenerate.
...
* util/grub-install.in: Gettextize the strings missed in first pass.
2012-02-03 22:52:23 +01:00
Vladimir 'phcoder' Serbinenko
8be63f2ef6
* Makefile.util.def (grub-mkdevicemap): Removed.
...
* include/grub/emu/hostdisk.h (grub_util_get_os_disk): New proto.
* include/grub/util/deviceiter.h: Removed.
* util/deviceiter.c: Likewise.
* util/getroot.c (grub_util_get_os_disk): New function.
* util/grub-install.in: Remove grub-mkdevicemap. Use -t disk as
replacement for EFI.
* util/grub-mkdevicemap.c: Removed.
* util/grub-probe.c (probe): Handle PRINT_DISK.
(argp_parser): Handle -t disk.
2012-02-03 22:36:51 +01:00
Vladimir 'phcoder' Serbinenko
8e1e4e3903
* util/grub-mkfont.c: Migrate to argp.
...
* util/grub-mklayout.c: Likewise.
* util/grub-mkpasswd-pbkdf2.c: Likewise.
* util/grub-mkrelpath.c: Likewise.
* util/grub-probe.c: Likewise.
* util/grub-script-check.c: Likewise.
2012-02-03 21:45:43 +01:00
Vladimir 'phcoder' Serbinenko
4459819a52
* util/grub-reboot.in: Add missing datarootdir.
...
Add missing newline.
* util/grub-set-default.in: Add missing datarootdir.
* util/powerpc/ieee1275/grub-mkrescue.in: Add missing newline.
* util/grub-mkrescue.in: Likewise.
2012-02-03 21:30:05 +01:00
Vladimir 'phcoder' Serbinenko
f65741c7a4
* util/grub.d/30_os-prober.in: Fix TRANSLATORS comment.
2012-02-03 21:25:10 +01:00
Vladimir 'phcoder' Serbinenko
c1a33466d8
* util/grub-kbdcomp.in: Add decent help and gettextize.
...
* docs/man/grub-kbdcomp.h2m: New file.
2012-02-03 21:22:12 +01:00
Vladimir 'phcoder' Serbinenko
c76899a0ea
Migrate grub-mkimage.c to argp.
...
* Makefile.util.def (grub-mkimage): Add util/argp_common.c.
(grub-setup): Likewise.
* util/grub-setup.c (print_version): Move to ...
* util/argp_common.c (print_version): ... here.
* util/grub-setup.c (argp_program_version_hook): Move to ...
* util/argp_common.c (argp_program_version_hook): ... here.
* util/grub-setup.c (argp_parser): Add exit (1) on fatal error for
safety.
* util/grub-mkimage.c (main): Migrate to argp.
2012-02-03 21:18:37 +01:00
Vladimir 'phcoder' Serbinenko
57db0757f4
* util/grub-mkrescue.in: Use same message as
...
util/powerpc/ieee1275/grub-mkrescue.in with %s in place of command
for better translations.
2012-02-03 14:45:45 +01:00
Vladimir 'phcoder' Serbinenko
18534ad91e
* util/powerpc/ieee1275/grub-mkrescue.in: Gettextize. Unify the command
...
options with generic grub-mkrescue.in with the goal of future
merge.
2012-02-03 14:38:39 +01:00
Grégoire Sutre
dc87d45a7a
NetBSD disk wedge support.
2012-02-03 12:32:21 +01:00
Mark Wooding
055f856f71
* util/grub-mkconfig.in: Use umask rather than chmod to create
...
grub.cfg.new to avoid insecure grub.cfg.
2012-02-03 12:15:53 +01:00
Vladimir 'phcoder' Serbinenko
4a9f8346c9
* grub-core/commands/ls.c: Gettextize.
...
* grub-core/commands/setpci.c: Likewise.
* grub-core/commands/videotest.c: Likewise.
* grub-core/disk/geli.c: Likewise.
* grub-core/kern/mm.c: Likewise.
* grub-core/lib/relocator.c: Likewise.
* grub-core/loader/efi/appleloader.c: Likewise.
* grub-core/loader/i386/xnu.c: Likewise.
* grub-core/loader/ia64/efi/linux.c: Likewise.
* grub-core/loader/xnu.c: Likewise.
* grub-core/net/dns.c: Likewise.
* grub-core/net/net.c: Likewise.
* grub-core/script/lexer.c: Likewise.
* grub-core/script/parser.y: Likewise.
* grub-core/script/yylex.l: Likewise.
* util/getroot.c: Likewise.
* util/grub-setup.c: Likewise.
2012-02-03 11:56:49 +01:00
Vladimir 'phcoder' Serbinenko
a32d5c712d
* util/grub-mkstandalone.in: Fix help messages. Gettextize.
...
* util/grub-install.in: Gettextize.
* util/grub-mkconfig.in: Likewise.
* util/grub-mkconfig_lib.in: Replace gettext with echo -n and not echo
if not available.
(grub_warn): Gettextize.
* util/grub-mknetdir.in: Gettextize.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
* util/grub.d/00_header.in: Likewise.
* util/grub.d/10_hurd.in: Likewise.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/10_netbsd.in: Likewise.
* util/grub.d/10_windows.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
* util/grub.d/30_os-prober.in: Likewise.
* po/POTFILES-shell.in: Regenerate.
2012-02-03 11:42:22 +01:00
Richard Laager
69edd81ab7
* util/grub-mkimage.c (main): Fix format-security warning.
...
* util/grub-mkrelpath.c (main): Likewise.
* util/grub-probe.c (main): Likewise.
2012-02-03 11:07:18 +01:00
Richard Laager
65f08dbfe0
* util/grub-probe.c (probe): Don't crash on canonicalize_file_name
...
failure.
Put back lost PRINT_DRIVE.
2012-02-03 11:02:06 +01:00
Richard Laager
e9084abefd
* util/getroot.c (find_root_devices_from_libzfs): Fix compilation error.
...
(grub_guess_root_devices): Replace strlen with sizeof.
Avoid crash.
(find_root_devices_from_poolname): Remove unused variable.
Handle raidzN.
2012-02-03 10:50:56 +01:00
Vladimir 'phcoder' Serbinenko
cf5f7ee788
Support install on multi-device filesystems.
...
* include/grub/emu/getroot.h (grub_guess_root_device): Renamed to ...
(grub_guess_root_devices): ...this. Return char **. All users updated.
* include/grub/emu/misc.h (grub_find_root_device_from_mountinfo):
Removed.
* util/getroot.c (find_root_device_from_libzfs): Moved pool logic to ...
(find_root_devices_from_poolname): ... here.
(grub_find_root_devices_from_mountinfo): Return char **. Make static.
Support zfs-fuse.
(grub_guess_root_device): Rename to ...
(grub_guess_root_devices): ... this. Return char **. All users updated.
* util/grub-install.in: Handle multi-device filesystems.
* util/grub-probe.c (probe). Make device_names a char **. Add delim
argument. All users updated.
Handle multi-device filesystems.
Use 'delim' as separator.
Remove device check to allow filesystems on file.
(main): Support -0 argument. Handle multi-device.
* util/grub-setup.c (setup): Remove root argument. Handle multi-device.
Fix a cross-device check while on it.
(arguments): Remove root_dev.
(argp_parser): Remove -r.
(main): Remove root_dev.
2012-02-03 10:35:28 +01:00
Vladimir 'phcoder' Serbinenko
63fe43f3c3
* util/getroot.c (grub_util_get_dm_node_linear_info): Fix memory leak.
...
* grub-core/disk/cryptodisk.c (cryptodisk_cleanup): Disable for
now to avoid double free.
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_dev): Rename to
hostdisk.
* include/grub/disk.h (grub_disk_dev_id): New id HOSTDISK.
* util/grub-probe.c (escape_of_path): Always return a new copy.
(print_full_name): Escape path.
(probe): Don't call grub_util_devname_to_ofpath on NULL.
Fix hints on abstractions.
2012-01-29 21:49:44 +01:00
Vladimir 'phcoder' Serbinenko
ebe2c96154
* util/grub-mkconfig_lib.in (prepare_grub_to_access_device):
...
Don't add "root" line if no compatibility hont is available.
Suggested by: Seth Goldberg.
2012-01-29 20:52:37 +01:00
Vladimir 'phcoder' Serbinenko
c30582ba5d
* util/grub-pe2elf.c (ehdr): Make static.
...
(shdr): Likewise.
(num_sections): Likewise.
(offset): Likewise.
2012-01-29 18:53:38 +01:00
Vladimir 'phcoder' Serbinenko
5f47782c29
Eliminate ofpath limits and possible overflows.
...
* util/ieee1275/ofpath.c (grub_util_info) [STANDALONE]: New function.
(OF_PATH_MAX): Removed.
(MAX_DISK_CAT): New const.
(find_obppath): Use allocated rather than preallocated buffer.
Return result. Argument of_path removed. All users updated.
Add missing fdstat.
(xrealpath): New function.
(block_device_get_sysfs_path_and_link): Remove sysfs argument.
Allocate rather than use preallocated buffer. All users updated.
(__of_path_common): Use allocated rather than preallocatecd buffer.
Return result. Argument of_path removed. All users updated.
(vendor_is_ATA): Read only needed part form the file.
(check_sas): Allocate depending on contents rather than fixed.
(main) [STANDALONE]: Handle NULL result.
2012-01-29 18:51:21 +01:00