Changeset 165b0c9
- Timestamp:
- Jul 16, 2011, 12:29:19 AM (14 years ago)
- Parents:
- c6332f5 (diff), f6ab6ee (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
barnowl
rb14f8cb rf5f6ec0 8 8 9 9 if test ! -x "$EXE"; then 10 echo "Cannot find barnowl.bin" >&210 echo "Cannot find $EXE" >&2 11 11 exit 1 12 12 fi -
functions.c
rdde1b4d r99ac28a 3226 3226 } else if (myargc > 0) { 3227 3227 /* Spawn the child. */ 3228 pid_tpid;3228 GPid pid; 3229 3229 GError *error = NULL; 3230 3230 owl_function_debugmsg("About to exec \"%s\" with %d arguments", argv[0], myargc); -
runtests.sh
r786a410 rf6ab6ee 1 1 #!/bin/sh 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/ 2 exec env HARNESS_PERL=./tester prove --failures t/ -
scripts/locker-build
r401752a r055e366 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") 87 88 88 89 SUFFIX= -
t/completion.t
r3001c11 re59d775 323 323 } 324 324 325 mkpath( "$tmpdir/.owl/",326 "$tmpdir/.owl/modules/",327 "$tmpdir/Public/",328 "$tmpdir/Private/",329 "$tmpdir/.ours",330 "$tmpdir/www",331 {mode => 0700});325 mkpath(["$tmpdir/.owl/", 326 "$tmpdir/.owl/modules/", 327 "$tmpdir/Public/", 328 "$tmpdir/Private/", 329 "$tmpdir/.ours", 330 "$tmpdir/www"], 331 0, 0700); 332 332 touch("$tmpdir/.zephyr.subs"); 333 333 touch("$tmpdir/wheee"); -
t/unicode.t
r09ff1eb rf415f83 5 5 use Encode; 6 6 7 BEGIN { bootstrap BarnOwl; };7 use Test::More qw(no_plan); 8 8 9 use Test::More qw(no_plan);9 use BarnOwl; 10 10 11 11 my $unicode = "“hello”"; -
tester.c
r14c9e05 r0ba7333 4 4 #undef WINDOW 5 5 6 #include <errno.h>7 6 #include <unistd.h> 8 #include <pwd.h>9 7 #include <stdio.h> 10 8 #include <stdlib.h> 11 9 #include <string.h> 12 #include <sys/types.h>13 10 14 11 #undef instr … … 136 133 { 137 134 int numfailed=0; 138 const char *home; 139 char *s, *path; 140 struct passwd *pw; 135 char *s, *path, *home; 141 136 142 137 printf("# BEGIN testing owl_util\n"); … … 227 222 "\""); 228 223 229 GString * g= g_string_new("");230 owl_string_appendf_quoted( g, "%q foo %q%q %s %", "hello", "world is", "can't");224 GString *quoted = g_string_new(""); 225 owl_string_appendf_quoted(quoted, "%q foo %q%q %s %", "hello", "world is", "can't"); 231 226 FAIL_UNLESS("owl_string_appendf", 232 !strcmp( g->str, "hello foo 'world is'\"can't\" %s %"));233 g_string_free( g, true);227 !strcmp(quoted->str, "hello foo 'world is'\"can't\" %s %")); 228 g_string_free(quoted, true); 234 229 235 230 … … 274 269 g_free(s); 275 270 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 } 271 home = g_strdup(owl_global_get_homedir(&g)); 285 272 s = owl_util_makepath("~"); 286 273 FAIL_UNLESS("makepath ~", !strcmp(home, s)); 287 274 g_free(s); 288 275 289 path = g_ strconcat(home, "/foo/bar/baz", NULL);276 path = g_build_filename(home, "foo/bar/baz", NULL); 290 277 s = owl_util_makepath("~///foo/bar//baz"); 291 278 FAIL_UNLESS("makepath ~///foo/bar//baz", !strcmp(path, s)); 292 279 g_free(s); 293 280 g_free(path); 294 295 errno = 0; 296 pw = getpwnam("root"); 297 if (pw) { 298 home = pw->pw_dir; 299 } else { 281 g_free(home); 282 283 home = owl_util_homedir_for_user("root"); 284 if (home == NULL) { 300 285 /* Just make some noise so we notice. */ 301 home = "<WHAT>";302 fprintf(stderr, " getpwnam: %s", errno ? strerror(errno) : "No such user");286 home = g_strdup("<WHAT>"); 287 fprintf(stderr, "owl_util_homedir_for_user failed"); 303 288 } 304 289 … … 307 292 g_free(s); 308 293 309 path = g_ strconcat(home, "/foo/bar/baz", NULL);294 path = g_build_filename(home, "foo/bar/baz", NULL); 310 295 s = owl_util_makepath("~root///foo/bar//baz"); 311 296 FAIL_UNLESS("makepath ~root///foo/bar//baz", !strcmp(path, s)); 312 297 g_free(s); 313 298 g_free(path); 299 g_free(home); 314 300 315 301 /* if (numfailed) printf("*** WARNING: failures encountered with owl_util\n"); */ -
util.c
rdde1b4d r8219374 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 stop 44 * 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 34 59 /* Return a "nice" version of the path. Tilde expansion is done, and 35 60 * duplicate slashes are removed. Caller must free the return. … … 42 67 /* Attempt tilde-expansion of the first component. Get the 43 68 tilde-prefix, which goes up to the next slash. */ 44 struct passwd *pw;45 69 const char *end = strchr(in + 1, '/'); 46 70 if (end == NULL) 47 71 end = in + strlen(in); 48 72 73 /* Patch together a new path. Replace the ~ and tilde-prefix with 74 the homedir, if available. */ 49 75 if (end == in + 1) { 50 /* My home directory. */ 51 pw = getpwuid(getuid()); 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); 52 79 } else { 53 80 /* Someone else's home directory. */ 54 81 char *user = g_strndup(in + 1, end - (in + 1)); 55 pw = getpwnam(user); 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); 56 89 g_free(user); 57 90 } 58 59 /* Patch together a new path. Replace the ~ and tilde-prefix with60 the homedir. */61 if (pw) {62 out = g_strconcat(pw->pw_dir, end, NULL);63 } else {64 out = g_strdup(in);65 }66 91 } else { 67 92 out = g_strdup(in); 68 93 } 69 94
Note: See TracChangeset
for help on using the changeset viewer.