mercurial/cext/parsers.c
changeset 48279 249d1888e9d8
parent 48264 bb240915f69f
child 48280 126feb805247
equal deleted inserted replaced
48278:fd3d4b7f8e62 48279:249d1888e9d8
   258 
   258 
   259 static PyObject *dirstate_item_v2_data(dirstateItemObject *self)
   259 static PyObject *dirstate_item_v2_data(dirstateItemObject *self)
   260 {
   260 {
   261 	int flags = self->flags;
   261 	int flags = self->flags;
   262 	int mode = dirstate_item_c_v1_mode(self);
   262 	int mode = dirstate_item_c_v1_mode(self);
       
   263 #ifdef S_IXUSR
       
   264 	/* This is for platforms with an exec bit */
   263 	if ((mode & S_IXUSR) != 0) {
   265 	if ((mode & S_IXUSR) != 0) {
   264 		flags |= dirstate_flag_mode_exec_perm;
   266 		flags |= dirstate_flag_mode_exec_perm;
   265 	} else {
   267 	} else {
   266 		flags &= ~dirstate_flag_mode_exec_perm;
   268 		flags &= ~dirstate_flag_mode_exec_perm;
   267 	}
   269 	}
       
   270 #else
       
   271 	flags &= ~dirstate_flag_mode_exec_perm;
       
   272 #endif
   268 	if (S_ISLNK(mode)) {
   273 	if (S_ISLNK(mode)) {
   269 		flags |= dirstate_flag_mode_is_symlink;
   274 		flags |= dirstate_flag_mode_is_symlink;
   270 	} else {
   275 	} else {
   271 		flags &= ~dirstate_flag_mode_is_symlink;
   276 		flags &= ~dirstate_flag_mode_is_symlink;
   272 	}
   277 	}