Changes in / [165b0c9:c6332f5]
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
barnowl
rf5f6ec0 rb14f8cb 8 8 9 9 if test ! -x "$EXE"; then 10 echo "Cannot find $EXE" >&210 echo "Cannot find barnowl.bin" >&2 11 11 exit 1 12 12 fi -
functions.c
r99ac28a rdde1b4d 3226 3226 } else if (myargc > 0) { 3227 3227 /* Spawn the child. */ 3228 GPidpid;3228 pid_t pid; 3229 3229 GError *error = NULL; 3230 3230 owl_function_debugmsg("About to exec \"%s\" with %d arguments", argv[0], myargc); -
runtests.sh
rf6ab6ee r786a410 1 1 #!/bin/sh 2 exec env HARNESS_PERL=./tester prove --failures t/ 2 SRCDIR=`dirname "${0}"` 3 4 export BARNOWL_DATA_DIR="$SRCDIR/perl/" 5 export BARNOWL_BIN_DIR="$SRCDIR/" 6 7 HARNESS_PERL=./tester exec prove --failures t/ -
scripts/locker-build
r055e366 r401752a 85 85 BARNOWL="/afs/sipb.mit.edu/project/barnowl/arch/$ATHENA_SYS" 86 86 export PKG_CONFIG_PATH="$BARNOWL/lib/pkgconfig" 87 eval $("$BARNOWL/bin/barnowl-perl-config")88 87 89 88 SUFFIX= -
t/completion.t
re59d775 r3001c11 323 323 } 324 324 325 mkpath( ["$tmpdir/.owl/",326 327 328 329 330 "$tmpdir/www"],331 0, 0700);325 mkpath("$tmpdir/.owl/", 326 "$tmpdir/.owl/modules/", 327 "$tmpdir/Public/", 328 "$tmpdir/Private/", 329 "$tmpdir/.ours", 330 "$tmpdir/www", 331 {mode => 0700}); 332 332 touch("$tmpdir/.zephyr.subs"); 333 333 touch("$tmpdir/wheee"); -
t/unicode.t
rf415f83 r09ff1eb 5 5 use Encode; 6 6 7 BEGIN { bootstrap BarnOwl; }; 8 7 9 use Test::More qw(no_plan); 8 9 use BarnOwl;10 10 11 11 my $unicode = "“hello”"; -
tester.c
r0ba7333 r14c9e05 4 4 #undef WINDOW 5 5 6 #include <errno.h> 6 7 #include <unistd.h> 8 #include <pwd.h> 7 9 #include <stdio.h> 8 10 #include <stdlib.h> 9 11 #include <string.h> 12 #include <sys/types.h> 10 13 11 14 #undef instr … … 133 136 { 134 137 int numfailed=0; 135 char *s, *path, *home; 138 const char *home; 139 char *s, *path; 140 struct passwd *pw; 136 141 137 142 printf("# BEGIN testing owl_util\n"); … … 222 227 "\""); 223 228 224 GString * quoted= g_string_new("");225 owl_string_appendf_quoted( quoted, "%q foo %q%q %s %", "hello", "world is", "can't");229 GString *g = g_string_new(""); 230 owl_string_appendf_quoted(g, "%q foo %q%q %s %", "hello", "world is", "can't"); 226 231 FAIL_UNLESS("owl_string_appendf", 227 !strcmp( quoted->str, "hello foo 'world is'\"can't\" %s %"));228 g_string_free( quoted, true);232 !strcmp(g->str, "hello foo 'world is'\"can't\" %s %")); 233 g_string_free(g, true); 229 234 230 235 … … 269 274 g_free(s); 270 275 271 home = g_strdup(owl_global_get_homedir(&g)); 276 errno = 0; 277 pw = getpwuid(getuid()); 278 if (pw) { 279 home = pw->pw_dir; 280 } else { 281 /* Just make some noise so we notice. */ 282 home = "<WHAT>"; 283 fprintf(stderr, "getpwuid: %s", errno ? strerror(errno) : "No such user"); 284 } 272 285 s = owl_util_makepath("~"); 273 286 FAIL_UNLESS("makepath ~", !strcmp(home, s)); 274 287 g_free(s); 275 288 276 path = g_ build_filename(home, "foo/bar/baz", NULL);289 path = g_strconcat(home, "/foo/bar/baz", NULL); 277 290 s = owl_util_makepath("~///foo/bar//baz"); 278 291 FAIL_UNLESS("makepath ~///foo/bar//baz", !strcmp(path, s)); 279 292 g_free(s); 280 293 g_free(path); 281 g_free(home); 282 283 home = owl_util_homedir_for_user("root"); 284 if (home == NULL) { 294 295 errno = 0; 296 pw = getpwnam("root"); 297 if (pw) { 298 home = pw->pw_dir; 299 } else { 285 300 /* Just make some noise so we notice. */ 286 home = g_strdup("<WHAT>");287 fprintf(stderr, " owl_util_homedir_for_user failed");301 home = "<WHAT>"; 302 fprintf(stderr, "getpwnam: %s", errno ? strerror(errno) : "No such user"); 288 303 } 289 304 … … 292 307 g_free(s); 293 308 294 path = g_ build_filename(home, "foo/bar/baz", NULL);309 path = g_strconcat(home, "/foo/bar/baz", NULL); 295 310 s = owl_util_makepath("~root///foo/bar//baz"); 296 311 FAIL_UNLESS("makepath ~root///foo/bar//baz", !strcmp(path, s)); 297 312 g_free(s); 298 313 g_free(path); 299 g_free(home);300 314 301 315 /* if (numfailed) printf("*** WARNING: failures encountered with owl_util\n"); */ -
util.c
r8219374 rdde1b4d 32 32 } 33 33 34 CALLER_OWN char *owl_util_homedir_for_user(const char *name)35 {36 int err;37 struct passwd pw_buf;38 struct passwd *pw;39 40 char *pw_strbuf, *ret;41 long pw_strbuf_len = sysconf(_SC_GETPW_R_SIZE_MAX);42 if (pw_strbuf_len < 0) {43 /* If we really hate ourselves, we can be fancy and loop until we stop44 * getting ERANGE. For now just pick a random number. */45 owl_function_error("owl_util_homedir_for_user: Could not get _SC_GETPW_R_SIZE_MAX");46 pw_strbuf_len = 16384;47 }48 pw_strbuf = g_new0(char, pw_strbuf_len);49 err = getpwnam_r(name, &pw_buf, pw_strbuf, pw_strbuf_len, &pw);50 if (err) {51 owl_function_error("getpwuid_r: %s", strerror(err));52 /* Fall through; pw will be NULL. */53 }54 ret = pw ? g_strdup(pw->pw_dir) : NULL;55 g_free(pw_strbuf);56 return ret;57 }58 59 34 /* Return a "nice" version of the path. Tilde expansion is done, and 60 35 * duplicate slashes are removed. Caller must free the return. … … 67 42 /* Attempt tilde-expansion of the first component. Get the 68 43 tilde-prefix, which goes up to the next slash. */ 44 struct passwd *pw; 69 45 const char *end = strchr(in + 1, '/'); 70 46 if (end == NULL) 71 47 end = in + strlen(in); 72 48 73 /* Patch together a new path. Replace the ~ and tilde-prefix with74 the homedir, if available. */75 49 if (end == in + 1) { 76 /* My home directory. Use the one in owl_global for consistency with 77 * owl_zephyr_dotfile. */ 78 out = g_strconcat(owl_global_get_homedir(&g), end, NULL); 50 /* My home directory. */ 51 pw = getpwuid(getuid()); 79 52 } else { 80 53 /* Someone else's home directory. */ 81 54 char *user = g_strndup(in + 1, end - (in + 1)); 82 char *home = owl_util_homedir_for_user(user); 83 if (home) { 84 out = g_strconcat(home, end, NULL); 85 } else { 86 out = g_strdup(in); 87 } 88 g_free(home); 55 pw = getpwnam(user); 89 56 g_free(user); 90 57 } 58 59 /* Patch together a new path. Replace the ~ and tilde-prefix with 60 the homedir. */ 61 if (pw) { 62 out = g_strconcat(pw->pw_dir, end, NULL); 63 } else { 64 out = g_strdup(in); 65 } 91 66 } else { 92 out = g_strdup(in);67 out = g_strdup(in); 93 68 } 94 69
Note: See TracChangeset
for help on using the changeset viewer.