~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysys/my_symlink2.c

  • Committer: Brian Aker
  • Date: 2008-07-18 20:10:26 UTC
  • mfrom: (51.3.29 remove-dbug)
  • Revision ID: brian@tangent.org-20080718201026-tto5golt0xhwqe4a
Merging in Jay's final patch on dbug.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
  /* Test if we should create a link */
33
33
  int create_link;
34
34
  char abs_linkname[FN_REFLEN];
35
 
  DBUG_ENTER("my_create_with_symlink");
36
 
  DBUG_PRINT("enter", ("linkname: %s  filename: %s",
37
 
                       linkname ? linkname : "(null)",
38
 
                       filename ? filename : "(null)"));
39
35
 
40
36
  if (my_disable_symlinks)
41
37
  {
42
 
    DBUG_PRINT("info", ("Symlinks disabled"));
43
38
    /* Create only the file, not the link and file */
44
39
    create_link= 0;
45
40
    if (linkname)
58
53
    {
59
54
      my_errno= errno= EEXIST;
60
55
      my_error(EE_CANTCREATEFILE, MYF(0), filename, EEXIST);
61
 
      DBUG_RETURN(-1);
 
56
      return(-1);
62
57
    }
63
58
    if (create_link && !access(linkname,F_OK))
64
59
    {
65
60
      my_errno= errno= EEXIST;
66
61
      my_error(EE_CANTCREATEFILE, MYF(0), linkname, EEXIST);
67
 
      DBUG_RETURN(-1);
 
62
      return(-1);
68
63
    }
69
64
  }
70
65
 
87
82
      }
88
83
    }
89
84
  }
90
 
  DBUG_RETURN(file);
 
85
  return(file);
91
86
}
92
87
 
93
88
/*
101
96
  int was_symlink= (!my_disable_symlinks &&
102
97
                    !my_readlink(link_name, name, MYF(0)));
103
98
  int result;
104
 
  DBUG_ENTER("my_delete_with_symlink");
105
99
 
106
100
  if (!(result=my_delete(name, MyFlags)))
107
101
  {
108
102
    if (was_symlink)
109
103
      result=my_delete(link_name, MyFlags);
110
104
  }
111
 
  DBUG_RETURN(result);
 
105
  return(result);
112
106
}
113
107
 
114
108
/*
131
125
                    !my_readlink(link_name, from, MYF(0)));
132
126
  int result=0;
133
127
  int name_is_different;
134
 
  DBUG_ENTER("my_rename_with_symlink");
135
128
 
136
129
  if (!was_symlink)
137
 
    DBUG_RETURN(my_rename(from, to, MyFlags));
 
130
    return(my_rename(from, to, MyFlags));
138
131
 
139
132
  /* Change filename that symlink pointed to */
140
133
  strmov(tmp_name, to);
145
138
    my_errno= EEXIST;
146
139
    if (MyFlags & MY_WME)
147
140
      my_error(EE_CANTCREATEFILE, MYF(0), tmp_name, EEXIST);
148
 
    DBUG_RETURN(1);
 
141
    return(1);
149
142
  }
150
143
 
151
144
  /* Create new symlink */
152
145
  if (my_symlink(tmp_name, to, MyFlags))
153
 
    DBUG_RETURN(1);
 
146
    return(1);
154
147
 
155
148
  /*
156
149
    Rename symlinked file if the base name didn't change.
163
156
    int save_errno=my_errno;
164
157
    my_delete(to, MyFlags);                     /* Remove created symlink */
165
158
    my_errno=save_errno;
166
 
    DBUG_RETURN(1);
 
159
    return(1);
167
160
  }
168
161
 
169
162
  /* Remove original symlink */
178
171
    my_errno=save_errno;
179
172
    result= 1;
180
173
  }
181
 
  DBUG_RETURN(result);
 
174
  return(result);
182
175
#endif /* HAVE_READLINK */
183
176
}